From 58c5012f0c7d43b82eb705fad6d3ccf81bae8980 Mon Sep 17 00:00:00 2001 From: Jason Lancaster Date: Fri, 14 Sep 2018 18:18:52 -0400 Subject: [PATCH 01/64] Improve build script for CentOS --- build.sh | 8 +++++++- scripts/eosio_build_centos.sh | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/build.sh b/build.sh index 339d15cca7..4b31e2c338 100755 --- a/build.sh +++ b/build.sh @@ -32,6 +32,7 @@ else ;; "CentOS Linux") export ARCH="Centos" + export CMAKE=${HOME}/opt/cmake/bin/cmake bash ./scripts/eosio_build_centos.sh ;; "elementary OS") @@ -86,7 +87,12 @@ fi mkdir -p build pushd build &> /dev/null -cmake -DCMAKE_INSTALL_PREFIX=/usr/local/eosio.cdt -DBOOST_ROOT="${BOOST}" -DCORE_SYMBOL_NAME="${CORE_SYMBOL}" ../ + +if [ -z "$CMAKE" ]; then + CMAKE=$( command -v cmake ) +fi + +"$CMAKE" -DCMAKE_INSTALL_PREFIX=/usr/local/eosio.cdt -DBOOST_ROOT="${BOOST}" -DCORE_SYMBOL_NAME="${CORE_SYMBOL}" ../ if [ $? -ne 0 ]; then exit -1; fi diff --git a/scripts/eosio_build_centos.sh b/scripts/eosio_build_centos.sh index 0c43e43d36..a0f824ac23 100644 --- a/scripts/eosio_build_centos.sh +++ b/scripts/eosio_build_centos.sh @@ -127,7 +127,7 @@ DEP_ARRAY=( git autoconf automake bzip2 libtool ocaml.x86_64 doxygen graphviz-devel.x86_64 \ libicu-devel.x86_64 bzip2.x86_64 bzip2-devel.x86_64 openssl-devel.x86_64 gmp-devel.x86_64 \ - python-devel.x86_64 gettext-devel.x86_64) + python-devel.x86_64 gettext-devel.x86_64 gcc-c++.x86_64) COUNT=1 DISPLAY="" DEP="" From e7deb92b16a74bcd13e1cec216fa5b4eb39af7e5 Mon Sep 17 00:00:00 2001 From: Bucky Kittinger Date: Thu, 20 Sep 2018 13:17:32 -0400 Subject: [PATCH 02/64] refactored tools, removed boost libs dependence in tools --- eosio_llvm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eosio_llvm b/eosio_llvm index 31e1613c47..96146c9295 160000 --- a/eosio_llvm +++ b/eosio_llvm @@ -1 +1 @@ -Subproject commit 31e1613c474cab51a80ac898ec31716273df3729 +Subproject commit 96146c9295b017360b07ef80019ce1d8fb1c4d9c From 16dd31c786e26e748c1b08d23228f56fcde3573d Mon Sep 17 00:00:00 2001 From: Bucky Kittinger Date: Tue, 25 Sep 2018 19:30:37 -0400 Subject: [PATCH 03/64] added brew --- CMakeLists.txt | 3 + packages/eosio.cdt.rb | 26 +++++++ packages/generate_bottle.sh | 126 +++++++++++++++++++++++++++++++++ packages/generate_package.sh | 6 ++ packages/generate_tarball.sh | 88 +++++++++++++++++++++++ scripts/generate_package.sh.in | 6 ++ 6 files changed, 255 insertions(+) create mode 100644 packages/eosio.cdt.rb create mode 100755 packages/generate_bottle.sh create mode 100755 packages/generate_package.sh create mode 100755 packages/generate_tarball.sh create mode 100644 scripts/generate_package.sh.in diff --git a/CMakeLists.txt b/CMakeLists.txt index 2dbd3b17d3..ce1ef9b650 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -47,6 +47,7 @@ message( STATUS "Using '${CORE_SYMBOL_NAME}' as CORE symbol name" ) # install examples #install(DIRECTORY examples DESTINATION "${CMAKE_INSTALL_PREFIX}") +configure_file(${CMAKE_SOURCE_DIR}/modules/EosioWasmToolchainPackage.cmake.in ${CMAKE_BINARY_DIR}/modules/EosioWasmToolchainPackage.cmake @ONLY) configure_file(${CMAKE_SOURCE_DIR}/modules/EosioWasmToolchain.cmake.in ${CMAKE_BINARY_DIR}/modules/EosioWasmToolchain.cmake @ONLY) install(FILES ${CMAKE_BINARY_DIR}/modules/EosioWasmToolchain.cmake DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/cmake) configure_file(${CMAKE_SOURCE_DIR}/eosio.imports.in ${CMAKE_BINARY_DIR}/eosio.imports COPYONLY) @@ -54,3 +55,5 @@ install(FILES ${CMAKE_BINARY_DIR}/eosio.imports DESTINATION ${CMAKE_INSTALL_PREF configure_file(${CMAKE_SOURCE_DIR}/scripts/ricardeos/ricardeos.py ${CMAKE_BINARY_DIR}/scripts/ricardeos.py COPYONLY) install(FILES ${CMAKE_BINARY_DIR}/scripts/ricardeos.py DESTINATION ${CMAKE_INSTALL_PREFIX}/scripts) + +configure_file(${CMAKE_SOURCE_DIR}/scripts/generate_package.sh.in ${CMAKE_SOURCE_DIR}/packages/generate_package.sh @ONLY) diff --git a/packages/eosio.cdt.rb b/packages/eosio.cdt.rb new file mode 100644 index 0000000000..8130b0e404 --- /dev/null +++ b/packages/eosio.cdt.rb @@ -0,0 +1,26 @@ +class EosioCdt < Formula + + homepage "https://github.com/eosio/eosio.cdt" + revision 0 + url "https://github.com/larryk85/eosio.cdt/archive/v1.2.1.tar.gz" + version "1.2.1" + #sha1 yada yada + + option :universal + + depends_on "cmake" => :build + depends_on :xcode => :build + depends_on :macos => :leopard + depends_on :arch => :intel + + bottle do + root_url "https://github.com/larryk85/test/releases/download/1.0.5" + #cellar :any_skip_relocation + sha256 "95b9516ebd4d907fe9541b8700773dfa97bb18f1a5bc330ad0677e7b3d5b34a5" => :high_sierra + end + def install + system "./build.sh" + system "./install.sh" + end +end +__END__ diff --git a/packages/generate_bottle.sh b/packages/generate_bottle.sh new file mode 100755 index 0000000000..c21fd87d46 --- /dev/null +++ b/packages/generate_bottle.sh @@ -0,0 +1,126 @@ +#! /bin/bash + +VERSION=$1 +PREFIX="eosio.cdt/$VERSION" + +mkdir -p ${PREFIX}/bin +mkdir -p ${PREFIX}/lib/cmake +mkdir -p ${PREFIX}/opt/eosio_cdt/bin +mkdir -p ${PREFIX}/opt/eosio_cdt/lib +mkdir -p ${PREFIX}/opt/eosio_cdt/include/eosiolib +mkdir -p ${PREFIX}/opt/eosio_cdt/scripts + +# install clang based tools and plugins +clang_tools=(clang-7 + eosio-abigen + eosio-cc + eosio-cpp + eosio-ld + llc + lld + llvm-ar + llvm-nm + llvm-objcopy + llvm-objdump + llvm-readobj + llvm-readelf + llvm-ranlib + llvm-strip + opt + wasm-ld) + +clang_plugins=(LLVMEosioApply.*) + +for f in ${clang_tools[@]}; do + cp ../build/EosioClang-prefix/src/EosioClang-build/bin/$f ${PREFIX}/opt/eosio_cdt/bin +done +for f in ${clang_plugins[@]}; do + cp ../build/EosioClang-prefix/src/EosioClang-build/lib/$f ${PREFIX}/opt/eosio_cdt/bin +done +pushd ${PREFIX}/opt/eosio_cdt/bin &> /dev/null +ln -sf clang-7 clang +ln -sf clang-7 clang++ +popd &> /dev/null + +# install wabt based tools +wabt_tools=(eosio-pp + wasm2wat + wat2wasm) + +for f in ${wabt_tools[@]}; do + cp ../build/external/wabt/$f ${PREFIX}/opt/eosio_cdt/bin +done + +# install cmake modules +sed 's/_PREFIX_/\/usr\/local/g' ../build/modules/EosioWasmToolchainPackage.cmake &> ${PREFIX}/lib/cmake/EosioWasmToolchain.cmake + +# install scripts +cp -R ../build/scripts ${PREFIX}/opt/eosio_cdt/ + +# install misc. +cp ../build/eosio.imports ${PREFIX}/opt/eosio_cdt + +# install wasm includes +cp -R ../libraries/boost/include ${PREFIX}/opt/eosio_cdt +cp ../libraries/eosiolib/*.h ../libraries/eosiolib/*.hpp ${PREFIX}/opt/eosio_cdt/include/eosiolib +cp -R ../libraries/libc/musl/include ${PREFIX}/opt/eosio_cdt/include/libc +cp -R ../libraries/libc/musl/src/internal ${PREFIX}/opt/eosio_cdt/include/libc +cp -R ../libraries/libc/musl/arch/eos ${PREFIX}/opt/eosio_cdt/include/libc +cp -R ../libraries/libc++/libcxx/include ${PREFIX}/opt/eosio_cdt/include/libcxx + +# install wasm libs +cp ../build/libraries/eosiolib/libeosio.a ${PREFIX}/opt/eosio_cdt/lib +cp ../build/libraries/libc/libc.a ${PREFIX}/opt/eosio_cdt/lib +cp ../build/libraries/libc++/libc++.a ${PREFIX}/opt/eosio_cdt/lib + +# make symlinks +create_symlink() { + pushd ${PREFIX}/bin &> /dev/null + ln -sf ../opt/eosio_cdt/bin/$1 $2 + popd &> /dev/null +} +create_symlink "llvm-ranlib eosio-ranlib" +create_symlink "llvm-ar eosio-ar" +create_symlink "llvm-objdump eosio-objdump" +create_symlink "llvm-readelf eosio-readelf" +create_symlink "eosio-cc eosio-cc" +create_symlink "eosio-cpp eosio-cpp" +create_symlink "eosio-ld eosio-ld" +create_symlink "eosio-pp eosio-pp" +create_symlink "eosio-abigen eosio-abigen" +create_symlink "wasm2wat eosio-wasm2wast" +create_symlink "wat2wasm eosio-wast2wasm" + +#cp brew/INSTALL_RECEIPT.json ${PREFIX} +tar -cvzf eosio.cdt-${VERSION}.high_sierra.bottle.tar.gz ${PREFIX} + +rm -r eosio.cdt + +hash=`openssl dgst -sha256 eosio.cdt-${VERSION}.high_sierra.bottle.tar.gz | awk 'NF>1{print $NF}'` + +echo "class EosioCdt < Formula + + homepage \"https://github.com/eosio/eosio.cdt\" + revision 0 + url \"https://github.com/larryk85/eosio.cdt/archive/v${VERSION}.tar.gz\" + version \"${VERSION}\" + #sha1 yada yada + + option :universal + + depends_on \"cmake\" => :build + depends_on :xcode => :build + depends_on :macos => :leopard + depends_on :arch => :intel + + bottle do + root_url \"https://github.com/larryk85/test/releases/download/1.0.5\" + #cellar :any_skip_relocation + sha256 \"${hash}\" => :high_sierra + end + def install + system \"./build.sh\" + system \"./install.sh\" + end +end +__END__" &> eosio.cdt.rb diff --git a/packages/generate_package.sh b/packages/generate_package.sh new file mode 100755 index 0000000000..cc0400d346 --- /dev/null +++ b/packages/generate_package.sh @@ -0,0 +1,6 @@ +#! /bin/bash + +VERSION="1.2.1" +VARIANT=$1 + +./generate_bottle.sh $VERSION diff --git a/packages/generate_tarball.sh b/packages/generate_tarball.sh new file mode 100755 index 0000000000..f78c9994b9 --- /dev/null +++ b/packages/generate_tarball.sh @@ -0,0 +1,88 @@ +#! /bin/bash + +mkdir -p usr/bin +mkdir -p usr/lib/cmake +mkdir -p usr/opt/eosio.cdt/bin +mkdir -p usr/opt/eosio.cdt/lib +mkdir -p usr/opt/eosio.cdt/include/eosiolib +mkdir -p usr/opt/eosio.cdt/scripts + +# install clang based tools and plugins +clang_tools=(clang-7 + eosio-abigen + eosio-cc + eosio-cpp + eosio-ld + llc + lld + llvm-ar + llvm-nm + llvm-objcopy + llvm-objdump + llvm-readobj + llvm-readelf + llvm-ranlib + llvm-strip + opt + wasm-ld) + +clang_plugins=(LLVMEosioApply.*) + +for f in ${clang_tools[@]}; do + cp ../build/EosioClang-prefix/src/EosioClang-build/bin/$f usr/opt/eosio.cdt/bin +done +for f in ${clang_plugins[@]}; do + cp ../build/EosioClang-prefix/src/EosioClang-build/lib/$f usr/opt/eosio.cdt/bin +done + +# install wabt based tools +wabt_tools=(eosio-pp + wasm2wat + wat2wasm) + +for f in ${wabt_tools[@]}; do + cp ../build/external/wabt/$f usr/opt/eosio.cdt/bin +done + +# install cmake modules +cp ../build/modules/EosioWasmToolchainPackage.cmake usr/lib/cmake/EosioWasmToolchain.cmake + +# install scripts +cp -R ../build/scripts usr/opt/eosio.cdt/ + +# install misc. +cp ../build/eosio.imports usr/opt/eosio.cdt + +# install wasm includes +cp -R ../libraries/boost/include usr/opt/eosio.cdt +cp ../libraries/eosiolib/*.h ../libraries/eosiolib/*.hpp usr/opt/eosio.cdt/include/eosiolib +cp -R ../libraries/libc/musl/include usr/opt/eosio.cdt/include/libc +cp -R ../libraries/libc/musl/src/internal usr/opt/eosio.cdt/include/libc +cp -R ../libraries/libc/musl/arch/eos usr/opt/eosio.cdt/include/libc +cp -R ../libraries/libc++/libcxx/include usr/opt/eosio.cdt/include/libcxx + +# install wasm libs +cp ../build/libraries/eosiolib/libeosio.a usr/opt/eosio.cdt/lib +cp ../build/libraries/libc/libc.a usr/opt/eosio.cdt/lib +cp ../build/libraries/libc++/libc++.a usr/opt/eosio.cdt/lib + +# make symlinks +create_symlink() { + pushd usr/bin &> /dev/null + ln -sf ../opt/eosio.cdt/bin/$1 $2 + popd &> /dev/null +} +create_symlink "llvm-ranlib eosio-ranlib" +create_symlink "llvm-ar eosio-ar" +create_symlink "llvm-objdump eosio-objdump" +create_symlink "llvm-readelf eosio-readelf" +create_symlink "eosio-cc eosio-cc" +create_symlink "eosio-cpp eosio-cpp" +create_symlink "eosio-ld eosio-ld" +create_symlink "eosio-pp eosio-pp" +create_symlink "eosio-abigen eosio-abigen" +create_symlink "wasm2wat eosio-wasm2wast" +create_symlink "wat2wasm eosio-wast2wasm" + +tar -cvzf eosio.cdt.tar.gz usr/* +rm -r usr diff --git a/scripts/generate_package.sh.in b/scripts/generate_package.sh.in new file mode 100644 index 0000000000..6ab7e3179a --- /dev/null +++ b/scripts/generate_package.sh.in @@ -0,0 +1,6 @@ +#! /bin/bash + +VERSION="@VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_PATCH@" +VARIANT=$1 + +./generate_bottle.sh $VERSION From 31f0a3831d688074d6e7cb5421a7af7352954528 Mon Sep 17 00:00:00 2001 From: Bucky Kittinger Date: Wed, 26 Sep 2018 03:10:29 -0400 Subject: [PATCH 04/64] added deb --- modules/EosioWasmToolchainPackage.cmake.in | 27 ++++++ packages/eosio.cdt.rb | 2 +- packages/generate_bottle.sh | 97 +--------------------- packages/generate_deb.sh | 20 +++++ packages/generate_package.sh | 5 +- packages/generate_tarball.sh | 64 ++++++++------ 6 files changed, 94 insertions(+), 121 deletions(-) create mode 100644 modules/EosioWasmToolchainPackage.cmake.in create mode 100755 packages/generate_deb.sh diff --git a/modules/EosioWasmToolchainPackage.cmake.in b/modules/EosioWasmToolchainPackage.cmake.in new file mode 100644 index 0000000000..3fe2b22c8a --- /dev/null +++ b/modules/EosioWasmToolchainPackage.cmake.in @@ -0,0 +1,27 @@ +message(STATUS "Setting up Eosio Wasm Toolchain") +set(CMAKE_SYSTEM_NAME WebAssembly) + +set(EOSIO_CDT_VERSION "@VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_PATCH@") +set(EOSIO_WASMSDK_VERSION "@VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_PATCH@") + +set(CMAKE_C_COMPILER "_PREFIX_/bin/eosio-cc") +set(CMAKE_CXX_COMPILER "_PREFIX_/bin/eosio-cpp") + +set(CMAKE_C_FLAGS " -O3 -I@BOOST_ROOT@/include ") +set(CMAKE_CXX_FLAGS " -O3 -I@BOOST_ROOT@/include ") + +set(WASM_LINKER "_PREFIX_/bin/eosio-ld") + +set(CMAKE_C_LINK_EXECUTABLE "${WASM_LINKER} -o ") +set(CMAKE_CXX_LINK_EXECUTABLE "${WASM_LINKER} -o ") + +set(CMAKE_AR "_PREFIX_/bin/eosio-ar" CACHE PATH "ar" FORCE) +set(CMAKE_RANLIB "_PREFIX_/bin/eosio-ranlib" CACHE PATH "ranlib" FORCE) + +# hack for CMake on Linux +set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS) +set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS) + +# hack for OSX +set(CMAKE_OSX_SYSROOT="${CLANG_DIR}") +set(CMAKE_OSX_DEPLOYMENT_TARGET="") diff --git a/packages/eosio.cdt.rb b/packages/eosio.cdt.rb index 8130b0e404..4ac78cec76 100644 --- a/packages/eosio.cdt.rb +++ b/packages/eosio.cdt.rb @@ -16,7 +16,7 @@ class EosioCdt < Formula bottle do root_url "https://github.com/larryk85/test/releases/download/1.0.5" #cellar :any_skip_relocation - sha256 "95b9516ebd4d907fe9541b8700773dfa97bb18f1a5bc330ad0677e7b3d5b34a5" => :high_sierra + sha256 "4b69ccf2100acda42a069a14ffb602cf6ea2157dac92d349a363229f08e869bb" => :high_sierra end def install system "./build.sh" diff --git a/packages/generate_bottle.sh b/packages/generate_bottle.sh index c21fd87d46..de0816dd3e 100755 --- a/packages/generate_bottle.sh +++ b/packages/generate_bottle.sh @@ -1,102 +1,11 @@ #! /bin/bash VERSION=$1 -PREFIX="eosio.cdt/$VERSION" +NAME="eosio.cdt-${VERSION}.high_sierra.bottle.tar.gz" -mkdir -p ${PREFIX}/bin -mkdir -p ${PREFIX}/lib/cmake -mkdir -p ${PREFIX}/opt/eosio_cdt/bin -mkdir -p ${PREFIX}/opt/eosio_cdt/lib -mkdir -p ${PREFIX}/opt/eosio_cdt/include/eosiolib -mkdir -p ${PREFIX}/opt/eosio_cdt/scripts +./generate_tarball.sh ${VERSION} eosio.cdt/${VERSION} eosio.cdt/${VERSION}/opt/eosio_cdt ${NAME} -# install clang based tools and plugins -clang_tools=(clang-7 - eosio-abigen - eosio-cc - eosio-cpp - eosio-ld - llc - lld - llvm-ar - llvm-nm - llvm-objcopy - llvm-objdump - llvm-readobj - llvm-readelf - llvm-ranlib - llvm-strip - opt - wasm-ld) - -clang_plugins=(LLVMEosioApply.*) - -for f in ${clang_tools[@]}; do - cp ../build/EosioClang-prefix/src/EosioClang-build/bin/$f ${PREFIX}/opt/eosio_cdt/bin -done -for f in ${clang_plugins[@]}; do - cp ../build/EosioClang-prefix/src/EosioClang-build/lib/$f ${PREFIX}/opt/eosio_cdt/bin -done -pushd ${PREFIX}/opt/eosio_cdt/bin &> /dev/null -ln -sf clang-7 clang -ln -sf clang-7 clang++ -popd &> /dev/null - -# install wabt based tools -wabt_tools=(eosio-pp - wasm2wat - wat2wasm) - -for f in ${wabt_tools[@]}; do - cp ../build/external/wabt/$f ${PREFIX}/opt/eosio_cdt/bin -done - -# install cmake modules -sed 's/_PREFIX_/\/usr\/local/g' ../build/modules/EosioWasmToolchainPackage.cmake &> ${PREFIX}/lib/cmake/EosioWasmToolchain.cmake - -# install scripts -cp -R ../build/scripts ${PREFIX}/opt/eosio_cdt/ - -# install misc. -cp ../build/eosio.imports ${PREFIX}/opt/eosio_cdt - -# install wasm includes -cp -R ../libraries/boost/include ${PREFIX}/opt/eosio_cdt -cp ../libraries/eosiolib/*.h ../libraries/eosiolib/*.hpp ${PREFIX}/opt/eosio_cdt/include/eosiolib -cp -R ../libraries/libc/musl/include ${PREFIX}/opt/eosio_cdt/include/libc -cp -R ../libraries/libc/musl/src/internal ${PREFIX}/opt/eosio_cdt/include/libc -cp -R ../libraries/libc/musl/arch/eos ${PREFIX}/opt/eosio_cdt/include/libc -cp -R ../libraries/libc++/libcxx/include ${PREFIX}/opt/eosio_cdt/include/libcxx - -# install wasm libs -cp ../build/libraries/eosiolib/libeosio.a ${PREFIX}/opt/eosio_cdt/lib -cp ../build/libraries/libc/libc.a ${PREFIX}/opt/eosio_cdt/lib -cp ../build/libraries/libc++/libc++.a ${PREFIX}/opt/eosio_cdt/lib - -# make symlinks -create_symlink() { - pushd ${PREFIX}/bin &> /dev/null - ln -sf ../opt/eosio_cdt/bin/$1 $2 - popd &> /dev/null -} -create_symlink "llvm-ranlib eosio-ranlib" -create_symlink "llvm-ar eosio-ar" -create_symlink "llvm-objdump eosio-objdump" -create_symlink "llvm-readelf eosio-readelf" -create_symlink "eosio-cc eosio-cc" -create_symlink "eosio-cpp eosio-cpp" -create_symlink "eosio-ld eosio-ld" -create_symlink "eosio-pp eosio-pp" -create_symlink "eosio-abigen eosio-abigen" -create_symlink "wasm2wat eosio-wasm2wast" -create_symlink "wat2wasm eosio-wast2wasm" - -#cp brew/INSTALL_RECEIPT.json ${PREFIX} -tar -cvzf eosio.cdt-${VERSION}.high_sierra.bottle.tar.gz ${PREFIX} - -rm -r eosio.cdt - -hash=`openssl dgst -sha256 eosio.cdt-${VERSION}.high_sierra.bottle.tar.gz | awk 'NF>1{print $NF}'` +hash=`openssl dgst -sha256 ${NAME} | awk 'NF>1{print $NF}'` echo "class EosioCdt < Formula diff --git a/packages/generate_deb.sh b/packages/generate_deb.sh new file mode 100755 index 0000000000..12c72e95e2 --- /dev/null +++ b/packages/generate_deb.sh @@ -0,0 +1,20 @@ +#! /bin/bash + +VERSION=$1 + +mkdir -p eosio.cdt/DEBIAN +echo "Package: eosio.cdt +Version: ${VERSION} +Section: devel +Priority: optional +Architecture: amd64 +Homepage: https://github.com/EOSIO/eosio.cdt +Maintainer: support@block.one +Description: Toolchain and supporting tools for the EOS.IO platform" &> eosio.cdt/DEBIAN/control + +./generate_tarball.sh ${VERSION} usr usr/opt/eosio.cdt/${VERSION} eosio.cdt.tar.gz + +tar -xvzf eosio.cdt.tar.gz -C eosio.cdt +dpkg-deb --build eosio.cdt + +rm -r eosio.cdt diff --git a/packages/generate_package.sh b/packages/generate_package.sh index cc0400d346..2c24558ae9 100755 --- a/packages/generate_package.sh +++ b/packages/generate_package.sh @@ -3,4 +3,7 @@ VERSION="1.2.1" VARIANT=$1 -./generate_bottle.sh $VERSION +mkdir tmp +#./generate_bottle.sh ${VERSION} +./generate_deb.sh ${VERSION} +rm -r tmp diff --git a/packages/generate_tarball.sh b/packages/generate_tarball.sh index f78c9994b9..e2f96a44e7 100755 --- a/packages/generate_tarball.sh +++ b/packages/generate_tarball.sh @@ -1,11 +1,17 @@ #! /bin/bash -mkdir -p usr/bin -mkdir -p usr/lib/cmake -mkdir -p usr/opt/eosio.cdt/bin -mkdir -p usr/opt/eosio.cdt/lib -mkdir -p usr/opt/eosio.cdt/include/eosiolib -mkdir -p usr/opt/eosio.cdt/scripts +VERSION=$1 + +PREFIX=$2 +CDT_PREFIX=$3 + +mkdir -p ${PREFIX}/bin +mkdir -p ${PREFIX}/lib/cmake +mkdir -p ${CDT_PREFIX}/bin +mkdir -p ${CDT_PREFIX}/lib +mkdir -p ${CDT_PREFIX}/cmake +mkdir -p ${CDT_PREFIX}/include/eosiolib +mkdir -p ${CDT_PREFIX}/scripts # install clang based tools and plugins clang_tools=(clang-7 @@ -29,47 +35,55 @@ clang_tools=(clang-7 clang_plugins=(LLVMEosioApply.*) for f in ${clang_tools[@]}; do - cp ../build/EosioClang-prefix/src/EosioClang-build/bin/$f usr/opt/eosio.cdt/bin + cp ../build/EosioClang-prefix/src/EosioClang-build/bin/$f ${CDT_PREFIX}/bin done for f in ${clang_plugins[@]}; do - cp ../build/EosioClang-prefix/src/EosioClang-build/lib/$f usr/opt/eosio.cdt/bin + cp ../build/EosioClang-prefix/src/EosioClang-build/lib/$f ${CDT_PREFIX}/bin done +pushd ${CDT_PREFIX}/bin &> /dev/null +ln -sf clang-7 clang +ln -sf clang-7 clang++ +popd &> /dev/null + # install wabt based tools wabt_tools=(eosio-pp wasm2wat wat2wasm) for f in ${wabt_tools[@]}; do - cp ../build/external/wabt/$f usr/opt/eosio.cdt/bin + cp ../build/external/wabt/$f ${CDT_PREFIX}/bin done # install cmake modules -cp ../build/modules/EosioWasmToolchainPackage.cmake usr/lib/cmake/EosioWasmToolchain.cmake +sed 's/_PREFIX_/\/usr/g' ../build/modules/EosioWasmToolchainPackage.cmake &> ${CDT_PREFIX}/cmake/EosioWasmToolchain.cmake +pushd ${PREFIX}/lib/cmake &> /dev/null +ln -sf ../../../${CDT_PREFIX}/cmake/EosioWasmToolchain.cmake EosioWasmToolchain.cmake +popd &> /dev/null # install scripts -cp -R ../build/scripts usr/opt/eosio.cdt/ +cp -R ../build/scripts/* ${CDT_PREFIX}/scripts # install misc. -cp ../build/eosio.imports usr/opt/eosio.cdt +cp ../build/eosio.imports ${CDT_PREFIX} # install wasm includes -cp -R ../libraries/boost/include usr/opt/eosio.cdt -cp ../libraries/eosiolib/*.h ../libraries/eosiolib/*.hpp usr/opt/eosio.cdt/include/eosiolib -cp -R ../libraries/libc/musl/include usr/opt/eosio.cdt/include/libc -cp -R ../libraries/libc/musl/src/internal usr/opt/eosio.cdt/include/libc -cp -R ../libraries/libc/musl/arch/eos usr/opt/eosio.cdt/include/libc -cp -R ../libraries/libc++/libcxx/include usr/opt/eosio.cdt/include/libcxx +cp -R ../libraries/boost/include/* ${CDT_PREFIX}/include +cp ../libraries/eosiolib/*.h ../libraries/eosiolib/*.hpp ${CDT_PREFIX}/include/eosiolib +cp -R ../libraries/libc/musl/include ${CDT_PREFIX}/include/libc +cp -R ../libraries/libc/musl/src/internal ${CDT_PREFIX}/include/libc/ +cp -R ../libraries/libc/musl/arch/eos ${CDT_PREFIX}/include/libc/ +cp -R ../libraries/libc++/libcxx/include ${CDT_PREFIX}/include/libcxx # install wasm libs -cp ../build/libraries/eosiolib/libeosio.a usr/opt/eosio.cdt/lib -cp ../build/libraries/libc/libc.a usr/opt/eosio.cdt/lib -cp ../build/libraries/libc++/libc++.a usr/opt/eosio.cdt/lib +cp ../build/libraries/eosiolib/libeosio.a ${CDT_PREFIX}/lib +cp ../build/libraries/libc/libc.a ${CDT_PREFIX}/lib +cp ../build/libraries/libc++/libc++.a ${CDT_PREFIX}/lib # make symlinks create_symlink() { - pushd usr/bin &> /dev/null - ln -sf ../opt/eosio.cdt/bin/$1 $2 + pushd ${PREFIX}/bin &> /dev/null + ln -sf ../../${CDT_PREFIX}/bin/$1 $2 popd &> /dev/null } create_symlink "llvm-ranlib eosio-ranlib" @@ -84,5 +98,5 @@ create_symlink "eosio-abigen eosio-abigen" create_symlink "wasm2wat eosio-wasm2wast" create_symlink "wat2wasm eosio-wast2wasm" -tar -cvzf eosio.cdt.tar.gz usr/* -rm -r usr +tar -cvzf $4 ./${PREFIX}/* +rm -r ${PREFIX} From 46e73d9eaaac91ffe8a6fa87de659e4351b5bf98 Mon Sep 17 00:00:00 2001 From: Bucky Kittinger Date: Wed, 26 Sep 2018 19:41:10 -0400 Subject: [PATCH 05/64] smoothing out wrinkles between deb and brew --- CMakeLists.txt | 29 +++++++++++++++++++++++++++++ packages/generate_bottle.sh | 23 ++++++++++++++++------- packages/generate_deb.sh | 4 ++++ packages/generate_package.sh | 13 ++++++++++--- packages/generate_tarball.sh | 10 +++++----- scripts/generate_package.sh.in | 12 +++++++++++- 6 files changed, 75 insertions(+), 16 deletions(-) mode change 100755 => 100644 packages/generate_bottle.sh mode change 100755 => 100644 packages/generate_deb.sh mode change 100755 => 100644 packages/generate_package.sh mode change 100755 => 100644 packages/generate_tarball.sh diff --git a/CMakeLists.txt b/CMakeLists.txt index ce1ef9b650..1d61c1b107 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -57,3 +57,32 @@ configure_file(${CMAKE_SOURCE_DIR}/scripts/ricardeos/ricardeos.py ${CMAKE_BINARY install(FILES ${CMAKE_BINARY_DIR}/scripts/ricardeos.py DESTINATION ${CMAKE_INSTALL_PREFIX}/scripts) configure_file(${CMAKE_SOURCE_DIR}/scripts/generate_package.sh.in ${CMAKE_SOURCE_DIR}/packages/generate_package.sh @ONLY) + +include(InstallRequiredSystemLibraries) + +#install_directory_permissions( DIRECTORY usr/${CMAKE_INSTALL_INCLUDEDIR}/eosio ) + +set(CPACK_PACKAGE_CONTACT "support@block.one") +set(CPACK_OUTPUT_FILE_PREFIX ${CMAKE_BINARY_DIR}/packages) +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/install) +endif() + +SET(CPACK_PACKAGE_DIRECTORY "${CMAKE_BINARY_DIR}/install") +set(CPACK_PACKAGE_NAME "EOS.IO") +set(CPACK_PACKAGE_VENDOR "block.one") +set(CPACK_PACKAGE_VERSION_MAJOR "${VERSION_MAJOR}") +set(CPACK_PACKAGE_VERSION_MINOR "${VERSION_MINOR}") +set(CPACK_PACKAGE_VERSION_PATCH "${VERSION_PATCH}") +set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}") +set(CPACK_PACKAGE_DESCRIPTION "Software for the EOS.IO network") +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Software for the EOS.IO network") +set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") +set(CPACK_PACKAGE_INSTALL_DIRECTORY "EOS.IO ${CPACK_PACKAGE_VERSION}") + +set(CPACK_GENERATOR "RPM") +set(CPACK_RPM_PACKAGE_RELEASE 0) +set(CPACK_RPM_PACKAGE_LICENSE "MIT") +set(CPACK_RPM_PACKAGE_URL "https://github.com/EOSIO/eos") + +include(CPack) diff --git a/packages/generate_bottle.sh b/packages/generate_bottle.sh old mode 100755 new mode 100644 index de0816dd3e..5b5394fc0a --- a/packages/generate_bottle.sh +++ b/packages/generate_bottle.sh @@ -3,7 +3,11 @@ VERSION=$1 NAME="eosio.cdt-${VERSION}.high_sierra.bottle.tar.gz" -./generate_tarball.sh ${VERSION} eosio.cdt/${VERSION} eosio.cdt/${VERSION}/opt/eosio_cdt ${NAME} +mkdir -p eosio.cdt/${VERSION}/opt/eosio_cdt/lib/cmake + +sed 's/_PREFIX_/\/usr\/local/g' ../build/modules/EosioWasmToolchainPackage.cmake &> eosio.cdt/${VERSION}/opt/eosio_cdt/lib/cmake/EosioWasmToolchain.cmake + +bash generate_tarball.sh ${VERSION} eosio.cdt/${VERSION} eosio.cdt/${VERSION}/opt/eosio_cdt opt/eosio_cdt ${NAME} hash=`openssl dgst -sha256 ${NAME} | awk 'NF>1{print $NF}'` @@ -13,23 +17,28 @@ echo "class EosioCdt < Formula revision 0 url \"https://github.com/larryk85/eosio.cdt/archive/v${VERSION}.tar.gz\" version \"${VERSION}\" - #sha1 yada yada option :universal depends_on \"cmake\" => :build + depends_on \"automake\" => :build + depends_on \"libtool\" => :build + depends_on \"wget\" => :build + depends_on \"gmp\" => :build + depends_on \"gettext\" => :build + depends_on \"doxygen\" => :build + depends_on \"graphviz\" => :build + depends_on \"lcov\" => :build depends_on :xcode => :build - depends_on :macos => :leopard + depends_on :macos => :high_sierra depends_on :arch => :intel - + bottle do root_url \"https://github.com/larryk85/test/releases/download/1.0.5\" - #cellar :any_skip_relocation sha256 \"${hash}\" => :high_sierra end def install - system \"./build.sh\" - system \"./install.sh\" + raise \"Error, only supporting binary packages at this time\" end end __END__" &> eosio.cdt.rb diff --git a/packages/generate_deb.sh b/packages/generate_deb.sh old mode 100755 new mode 100644 index 12c72e95e2..a5106a9853 --- a/packages/generate_deb.sh +++ b/packages/generate_deb.sh @@ -12,6 +12,10 @@ Homepage: https://github.com/EOSIO/eosio.cdt Maintainer: support@block.one Description: Toolchain and supporting tools for the EOS.IO platform" &> eosio.cdt/DEBIAN/control +mkdir -p usr/opt/eosio.cdt/${VERSION}/lib/cmake + +sed 's/_PREFIX_/\/usr/g' ../build/modules/EosioWasmToolchainPackage.cmake &> usr/opt/eosio.cdt/${VERSION}/lib/cmake/EosioWasmToolchain.cmake + ./generate_tarball.sh ${VERSION} usr usr/opt/eosio.cdt/${VERSION} eosio.cdt.tar.gz tar -xvzf eosio.cdt.tar.gz -C eosio.cdt diff --git a/packages/generate_package.sh b/packages/generate_package.sh old mode 100755 new mode 100644 index 2c24558ae9..6177a456b0 --- a/packages/generate_package.sh +++ b/packages/generate_package.sh @@ -4,6 +4,13 @@ VERSION="1.2.1" VARIANT=$1 mkdir tmp -#./generate_bottle.sh ${VERSION} -./generate_deb.sh ${VERSION} -rm -r tmp + +if [[ ${VARIANT} == "brew" ]]; then + bash generate_bottle.sh ${VERSION} +elif [[ ${VARIANT} == "deb" ]]; then + bash generate_deb.sh ${VERSION} +else + echo "Error, unknown package type. Use either ['brew', 'deb', 'rpm']." + exit -1 +fi +rm -r tmp diff --git a/packages/generate_tarball.sh b/packages/generate_tarball.sh old mode 100755 new mode 100644 index e2f96a44e7..8a61ef14c9 --- a/packages/generate_tarball.sh +++ b/packages/generate_tarball.sh @@ -4,11 +4,12 @@ VERSION=$1 PREFIX=$2 CDT_PREFIX=$3 +SYMLINK_PREFIX=$4 mkdir -p ${PREFIX}/bin mkdir -p ${PREFIX}/lib/cmake mkdir -p ${CDT_PREFIX}/bin -mkdir -p ${CDT_PREFIX}/lib +mkdir -p ${CDT_PREFIX}/lib/cmake mkdir -p ${CDT_PREFIX}/cmake mkdir -p ${CDT_PREFIX}/include/eosiolib mkdir -p ${CDT_PREFIX}/scripts @@ -56,9 +57,8 @@ for f in ${wabt_tools[@]}; do done # install cmake modules -sed 's/_PREFIX_/\/usr/g' ../build/modules/EosioWasmToolchainPackage.cmake &> ${CDT_PREFIX}/cmake/EosioWasmToolchain.cmake pushd ${PREFIX}/lib/cmake &> /dev/null -ln -sf ../../../${CDT_PREFIX}/cmake/EosioWasmToolchain.cmake EosioWasmToolchain.cmake +ln -sf ../../${SYMLINK_PREFIX}/lib/cmake/EosioWasmToolchain.cmake EosioWasmToolchain.cmake popd &> /dev/null # install scripts @@ -83,7 +83,7 @@ cp ../build/libraries/libc++/libc++.a ${CDT_PREFIX}/lib # make symlinks create_symlink() { pushd ${PREFIX}/bin &> /dev/null - ln -sf ../../${CDT_PREFIX}/bin/$1 $2 + ln -sf ../${SYMLINK_PREFIX}/bin/$1 $2 popd &> /dev/null } create_symlink "llvm-ranlib eosio-ranlib" @@ -98,5 +98,5 @@ create_symlink "eosio-abigen eosio-abigen" create_symlink "wasm2wat eosio-wasm2wast" create_symlink "wat2wasm eosio-wast2wasm" -tar -cvzf $4 ./${PREFIX}/* +tar -cvzf $5 ./${PREFIX}/* rm -r ${PREFIX} diff --git a/scripts/generate_package.sh.in b/scripts/generate_package.sh.in index 6ab7e3179a..adaed0326c 100644 --- a/scripts/generate_package.sh.in +++ b/scripts/generate_package.sh.in @@ -3,4 +3,14 @@ VERSION="@VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_PATCH@" VARIANT=$1 -./generate_bottle.sh $VERSION +mkdir tmp + +if [[ ${VARIANT} == "brew" ]]; then + bash generate_bottle.sh ${VERSION} +elif [[ ${VARIANT} == "deb" ]]; then + bash generate_deb.sh ${VERSION} +else + echo "Error, unknown package type. Use either ['brew', 'deb', 'rpm']." + exit -1 +fi +rm -r tmp From 31a80f713bb94b8d7a332cd353daf84b393ec2f6 Mon Sep 17 00:00:00 2001 From: Bucky Kittinger Date: Thu, 27 Sep 2018 17:12:18 -0400 Subject: [PATCH 06/64] added boost, changed cmake system --- CMakeLists.txt | 17 +- InstallClang.txt | 15 + eosio_llvm | 2 +- external/wabt/CMakeLists.txt | 3 + install.sh | 9 +- libraries/boost/CMakeLists.txt | 3 +- libraries/boost/include/boost/assert.hpp | 85 + libraries/boost/include/boost/config.hpp | 67 + .../boost/config/abi/borland_prefix.hpp | 27 + .../boost/config/abi/borland_suffix.hpp | 12 + .../include/boost/config/abi/msvc_prefix.hpp | 22 + .../include/boost/config/abi/msvc_suffix.hpp | 8 + .../boost/include/boost/config/abi_prefix.hpp | 25 + .../boost/include/boost/config/abi_suffix.hpp | 27 + .../boost/include/boost/config/auto_link.hpp | 466 +++ .../include/boost/config/compiler/borland.hpp | 332 ++ .../include/boost/config/compiler/clang.hpp | 336 ++ .../boost/config/compiler/codegear.hpp | 235 ++ .../include/boost/config/compiler/comeau.hpp | 59 + .../boost/config/compiler/common_edg.hpp | 156 + .../boost/config/compiler/compaq_cxx.hpp | 19 + .../include/boost/config/compiler/cray.hpp | 124 + .../include/boost/config/compiler/diab.hpp | 26 + .../boost/config/compiler/digitalmars.hpp | 137 + .../include/boost/config/compiler/gcc.hpp | 356 ++ .../include/boost/config/compiler/gcc_xml.hpp | 108 + .../boost/config/compiler/greenhills.hpp | 28 + .../include/boost/config/compiler/hp_acc.hpp | 147 + .../include/boost/config/compiler/intel.hpp | 564 +++ .../include/boost/config/compiler/kai.hpp | 33 + .../boost/config/compiler/metrowerks.hpp | 192 + .../include/boost/config/compiler/mpw.hpp | 134 + .../include/boost/config/compiler/nvcc.hpp | 58 + .../boost/config/compiler/pathscale.hpp | 132 + .../include/boost/config/compiler/pgi.hpp | 23 + .../boost/config/compiler/sgi_mipspro.hpp | 29 + .../boost/config/compiler/sunpro_cc.hpp | 210 + .../include/boost/config/compiler/vacpp.hpp | 180 + .../include/boost/config/compiler/visualc.hpp | 354 ++ .../include/boost/config/compiler/xlcpp.hpp | 281 ++ .../boost/config/compiler/xlcpp_zos.hpp | 169 + .../boost/config/detail/posix_features.hpp | 95 + .../config/detail/select_compiler_config.hpp | 158 + .../config/detail/select_platform_config.hpp | 142 + .../config/detail/select_stdlib_config.hpp | 110 + .../include/boost/config/detail/suffix.hpp | 1036 +++++ .../boost/config/header_deprecated.hpp | 26 + .../include/boost/config/helper_macros.hpp | 37 + .../include/boost/config/no_tr1/cmath.hpp | 28 + .../include/boost/config/no_tr1/complex.hpp | 28 + .../boost/config/no_tr1/functional.hpp | 28 + .../include/boost/config/no_tr1/memory.hpp | 28 + .../include/boost/config/no_tr1/utility.hpp | 28 + .../include/boost/config/platform/aix.hpp | 33 + .../include/boost/config/platform/amigaos.hpp | 15 + .../include/boost/config/platform/beos.hpp | 26 + .../include/boost/config/platform/bsd.hpp | 86 + .../boost/config/platform/cloudabi.hpp | 18 + .../include/boost/config/platform/cray.hpp | 18 + .../include/boost/config/platform/cygwin.hpp | 68 + .../include/boost/config/platform/haiku.hpp | 31 + .../include/boost/config/platform/hpux.hpp | 87 + .../include/boost/config/platform/irix.hpp | 31 + .../include/boost/config/platform/linux.hpp | 106 + .../include/boost/config/platform/macos.hpp | 87 + .../include/boost/config/platform/qnxnto.hpp | 31 + .../include/boost/config/platform/solaris.hpp | 31 + .../include/boost/config/platform/symbian.hpp | 97 + .../include/boost/config/platform/vms.hpp | 25 + .../include/boost/config/platform/vxworks.hpp | 433 ++ .../include/boost/config/platform/win32.hpp | 90 + .../include/boost/config/platform/zos.hpp | 32 + .../include/boost/config/pragma_message.hpp | 31 + .../include/boost/config/requires_threads.hpp | 92 + .../boost/config/stdlib/dinkumware.hpp | 258 ++ .../include/boost/config/stdlib/libcomo.hpp | 92 + .../include/boost/config/stdlib/libcpp.hpp | 133 + .../boost/config/stdlib/libstdcpp3.hpp | 349 ++ .../include/boost/config/stdlib/modena.hpp | 78 + .../boost/include/boost/config/stdlib/msl.hpp | 97 + .../include/boost/config/stdlib/roguewave.hpp | 207 + .../boost/include/boost/config/stdlib/sgi.hpp | 167 + .../include/boost/config/stdlib/stlport.hpp | 257 ++ .../include/boost/config/stdlib/vacpp.hpp | 73 + .../include/boost/config/stdlib/xlcpp_zos.hpp | 60 + libraries/boost/include/boost/config/user.hpp | 133 + .../include/boost/config/warning_disable.hpp | 47 + .../boost/include/boost/config/workaround.hpp | 279 ++ .../include/boost/container/adaptive_pool.hpp | 349 ++ .../include/boost/container/allocator.hpp | 368 ++ .../boost/container/allocator_traits.hpp | 477 +++ .../include/boost/container/container_fwd.hpp | 296 ++ .../boost/include/boost/container/deque.hpp | 2263 ++++++++++ .../container/detail/adaptive_node_pool.hpp | 166 + .../detail/adaptive_node_pool_impl.hpp | 885 ++++ .../boost/container/detail/addressof.hpp | 41 + .../container/detail/advanced_insert_int.hpp | 477 +++ .../boost/container/detail/algorithm.hpp | 157 + .../boost/container/detail/alloc_helpers.hpp | 60 + .../boost/container/detail/alloc_lib.h | 314 ++ .../container/detail/allocation_type.hpp | 58 + .../detail/allocator_version_traits.hpp | 162 + .../boost/container/detail/auto_link.hpp | 51 + .../boost/container/detail/block_list.hpp | 139 + .../boost/container/detail/block_slist.hpp | 157 + .../container/detail/compare_functors.hpp | 74 + .../boost/container/detail/config_begin.hpp | 53 + .../boost/container/detail/config_end.hpp | 13 + .../container/detail/construct_in_place.hpp | 96 + .../detail/container_or_allocator_rebind.hpp | 49 + .../container/detail/container_rebind.hpp | 258 ++ .../boost/container/detail/copy_move_algo.hpp | 1144 +++++ .../boost/container/detail/destroyers.hpp | 378 ++ .../detail/dispatch_uses_allocator.hpp | 461 +++ .../boost/container/detail/dlmalloc.hpp | 103 + .../boost/container/detail/flat_tree.hpp | 1539 +++++++ .../container/detail/function_detector.hpp | 96 + .../boost/container/detail/is_container.hpp | 55 + .../detail/is_contiguous_container.hpp | 47 + .../boost/container/detail/is_sorted.hpp | 57 + .../boost/container/detail/iterator.hpp | 70 + .../detail/iterator_to_raw_pointer.hpp | 33 + .../boost/container/detail/iterators.hpp | 875 ++++ .../boost/container/detail/math_functions.hpp | 123 + .../boost/container/detail/min_max.hpp | 37 + .../detail/minimal_char_traits_header.hpp | 32 + .../include/boost/container/detail/mpl.hpp | 86 + .../detail/multiallocation_chain.hpp | 298 ++ .../include/boost/container/detail/mutex.hpp | 283 ++ .../boost/container/detail/next_capacity.hpp | 77 + .../container/detail/node_alloc_holder.hpp | 419 ++ .../boost/container/detail/node_pool.hpp | 157 + .../boost/container/detail/node_pool_impl.hpp | 375 ++ .../include/boost/container/detail/pair.hpp | 559 +++ .../detail/pair_key_mapped_of_value.hpp | 55 + .../boost/container/detail/placement_new.hpp | 30 + .../boost/container/detail/pool_common.hpp | 57 + .../container/detail/pool_common_alloc.hpp | 102 + .../boost/container/detail/pool_resource.hpp | 191 + .../boost/container/detail/singleton.hpp | 121 + .../boost/container/detail/std_fwd.hpp | 56 + .../container/detail/transform_iterator.hpp | 180 + .../include/boost/container/detail/tree.hpp | 1358 ++++++ .../boost/container/detail/type_traits.hpp | 70 + .../boost/container/detail/value_functors.hpp | 36 + .../boost/container/detail/value_init.hpp | 51 + .../detail/variadic_templates_tools.hpp | 163 + .../boost/container/detail/version_type.hpp | 110 + .../boost/container/detail/workaround.hpp | 111 + .../include/boost/container/flat_map.hpp | 2590 ++++++++++++ .../include/boost/container/flat_set.hpp | 1681 ++++++++ .../boost/include/boost/container/list.hpp | 1489 +++++++ .../boost/include/boost/container/map.hpp | 1950 +++++++++ .../include/boost/container/new_allocator.hpp | 179 + .../boost/container/node_allocator.hpp | 341 ++ .../include/boost/container/node_handle.hpp | 443 ++ .../boost/include/boost/container/options.hpp | 245 ++ .../include/boost/container/pmr/deque.hpp | 45 + .../include/boost/container/pmr/flat_map.hpp | 63 + .../include/boost/container/pmr/flat_set.hpp | 59 + .../boost/container/pmr/global_resource.hpp | 66 + .../include/boost/container/pmr/list.hpp | 45 + .../boost/include/boost/container/pmr/map.hpp | 67 + .../boost/container/pmr/memory_resource.hpp | 101 + .../pmr/monotonic_buffer_resource.hpp | 180 + .../container/pmr/polymorphic_allocator.hpp | 166 + .../boost/container/pmr/pool_options.hpp | 52 + .../boost/container/pmr/resource_adaptor.hpp | 193 + .../boost/include/boost/container/pmr/set.hpp | 63 + .../include/boost/container/pmr/slist.hpp | 45 + .../boost/container/pmr/small_vector.hpp | 45 + .../boost/container/pmr/stable_vector.hpp | 45 + .../include/boost/container/pmr/string.hpp | 50 + .../pmr/synchronized_pool_resource.hpp | 138 + .../pmr/unsynchronized_pool_resource.hpp | 194 + .../include/boost/container/pmr/vector.hpp | 45 + .../boost/container/scoped_allocator.hpp | 907 ++++ .../boost/container/scoped_allocator_fwd.hpp | 71 + .../boost/include/boost/container/set.hpp | 1430 +++++++ .../boost/include/boost/container/slist.hpp | 1702 ++++++++ .../include/boost/container/small_vector.hpp | 631 +++ .../include/boost/container/stable_vector.hpp | 2112 ++++++++++ .../include/boost/container/static_vector.hpp | 1242 ++++++ .../boost/include/boost/container/string.hpp | 3447 ++++++++++++++++ .../boost/container/throw_exception.hpp | 181 + .../boost/container/uses_allocator.hpp | 169 + .../boost/container/uses_allocator_fwd.hpp | 73 + .../boost/include/boost/container/vector.hpp | 3377 +++++++++++++++ .../container_hash/detail/float_functions.hpp | 336 ++ .../container_hash/detail/hash_float.hpp | 271 ++ .../boost/container_hash/detail/limits.hpp | 62 + .../boost/container_hash/extensions.hpp | 414 ++ .../include/boost/container_hash/hash.hpp | 761 ++++ .../include/boost/container_hash/hash_fwd.hpp | 36 + .../boost/include/boost/core/addressof.hpp | 274 ++ .../include/boost/core/addressof.hpp314015 | 2 + .../include/boost/core/checked_delete.hpp | 69 + .../boost/include/boost/core/demangle.hpp | 126 + .../boost/include/boost/core/enable_if.hpp | 128 + .../include/boost/core/enable_if.hpp56631 | 1 + .../boost/core/explicit_operator_bool.hpp | 154 + .../include/boost/core/ignore_unused.hpp | 70 + .../boost/include/boost/core/is_same.hpp | 40 + .../include/boost/core/lightweight_test.hpp | 465 +++ .../boost/core/lightweight_test_trait.hpp | 56 + .../boost/core/no_exceptions_support.hpp | 44 + .../boost/include/boost/core/noncopyable.hpp | 48 + .../boost/include/boost/core/null_deleter.hpp | 44 + .../include/boost/core/pointer_traits.hpp | 233 ++ libraries/boost/include/boost/core/ref.hpp | 301 ++ .../boost/include/boost/core/ref.hpp314014 | 1 + .../boost/include/boost/core/scoped_enum.hpp | 194 + libraries/boost/include/boost/core/swap.hpp | 60 + .../boost/include/boost/core/typeinfo.hpp | 151 + .../include/boost/core/underlying_type.hpp | 79 + libraries/boost/include/boost/cstdint.hpp | 556 +++ .../boost/include/boost/detail/algorithm.hpp | 82 + .../boost/detail/allocator_utilities.hpp | 192 + .../include/boost/detail/atomic_count.hpp | 21 + .../include/boost/detail/basic_pointerbuf.hpp | 139 + .../include/boost/detail/binary_search.hpp | 216 + .../boost/include/boost/detail/bitmask.hpp | 58 + .../include/boost/detail/call_traits.hpp | 172 + .../include/boost/detail/catch_exceptions.hpp | 142 + .../include/boost/detail/compressed_pair.hpp | 443 ++ .../include/boost/detail/container_fwd.hpp | 157 + .../include/boost/detail/dynamic_bitset.hpp | 241 ++ .../boost/include/boost/detail/endian.hpp | 11 + libraries/boost/include/boost/detail/fenv.hpp | 101 + .../boost/detail/has_default_constructor.hpp | 29 + .../boost/include/boost/detail/identifier.hpp | 87 + .../include/boost/detail/indirect_traits.hpp | 204 + .../include/boost/detail/interlocked.hpp | 201 + .../include/boost/detail/is_incrementable.hpp | 125 + .../boost/include/boost/detail/is_sorted.hpp | 56 + .../boost/include/boost/detail/is_xxx.hpp | 27 + .../boost/include/boost/detail/iterator.hpp | 39 + .../include/boost/detail/lcast_precision.hpp | 185 + .../include/boost/detail/lightweight_main.hpp | 36 + .../boost/detail/lightweight_mutex.hpp | 22 + .../include/boost/detail/lightweight_test.hpp | 17 + .../boost/detail/lightweight_test_report.hpp | 56 + .../boost/detail/lightweight_thread.hpp | 159 + .../boost/detail/named_template_params.hpp | 177 + .../boost/detail/no_exceptions_support.hpp | 17 + .../include/boost/detail/numeric_traits.hpp | 160 + .../boost/detail/ob_compressed_pair.hpp | 499 +++ .../include/boost/detail/quick_allocator.hpp | 23 + .../boost/detail/reference_content.hpp | 120 + .../boost/detail/scoped_enum_emulation.hpp | 17 + .../include/boost/detail/select_type.hpp | 36 + .../include/boost/detail/sp_typeinfo.hpp | 36 + .../boost/detail/templated_streams.hpp | 74 + .../boost/detail/utf8_codecvt_facet.hpp | 219 + .../boost/detail/utf8_codecvt_facet.ipp | 289 ++ .../boost/detail/winapi/access_rights.hpp | 20 + .../boost/include/boost/detail/winapi/apc.hpp | 20 + .../boost/detail/winapi/basic_types.hpp | 20 + .../include/boost/detail/winapi/bcrypt.hpp | 20 + .../winapi/character_code_conversion.hpp | 20 + .../detail/winapi/condition_variable.hpp | 23 + .../include/boost/detail/winapi/config.hpp | 19 + .../boost/detail/winapi/critical_section.hpp | 20 + .../include/boost/detail/winapi/crypt.hpp | 20 + .../include/boost/detail/winapi/dbghelp.hpp | 20 + .../include/boost/detail/winapi/debugapi.hpp | 20 + .../winapi/detail/deprecated_namespace.hpp | 28 + .../detail/winapi/directory_management.hpp | 20 + .../boost/include/boost/detail/winapi/dll.hpp | 20 + .../boost/detail/winapi/environment.hpp | 20 + .../boost/detail/winapi/error_codes.hpp | 20 + .../boost/detail/winapi/error_handling.hpp | 20 + .../include/boost/detail/winapi/event.hpp | 20 + .../boost/detail/winapi/file_management.hpp | 20 + .../boost/detail/winapi/file_mapping.hpp | 20 + .../detail/winapi/get_current_process.hpp | 20 + .../detail/winapi/get_current_process_id.hpp | 20 + .../detail/winapi/get_current_thread.hpp | 20 + .../detail/winapi/get_current_thread_id.hpp | 20 + .../boost/detail/winapi/get_last_error.hpp | 20 + .../boost/detail/winapi/get_process_times.hpp | 20 + .../detail/winapi/get_system_directory.hpp | 20 + .../boost/detail/winapi/get_thread_times.hpp | 20 + .../boost/detail/winapi/handle_info.hpp | 20 + .../include/boost/detail/winapi/handles.hpp | 20 + .../boost/detail/winapi/heap_memory.hpp | 20 + .../include/boost/detail/winapi/init_once.hpp | 22 + .../include/boost/detail/winapi/jobs.hpp | 20 + .../include/boost/detail/winapi/limits.hpp | 20 + .../boost/detail/winapi/local_memory.hpp | 20 + .../include/boost/detail/winapi/memory.hpp | 20 + .../include/boost/detail/winapi/mutex.hpp | 20 + .../boost/detail/winapi/overlapped.hpp | 20 + .../detail/winapi/page_protection_flags.hpp | 20 + .../include/boost/detail/winapi/pipes.hpp | 20 + .../boost/detail/winapi/priority_class.hpp | 20 + .../include/boost/detail/winapi/process.hpp | 20 + .../include/boost/detail/winapi/security.hpp | 20 + .../include/boost/detail/winapi/semaphore.hpp | 20 + .../include/boost/detail/winapi/shell.hpp | 20 + .../boost/detail/winapi/show_window.hpp | 20 + .../include/boost/detail/winapi/srw_lock.hpp | 23 + .../boost/detail/winapi/stack_backtrace.hpp | 20 + .../boost/detail/winapi/synchronization.hpp | 20 + .../include/boost/detail/winapi/system.hpp | 20 + .../include/boost/detail/winapi/thread.hpp | 20 + .../boost/detail/winapi/thread_pool.hpp | 20 + .../include/boost/detail/winapi/time.hpp | 20 + .../include/boost/detail/winapi/timers.hpp | 20 + .../boost/include/boost/detail/winapi/tls.hpp | 20 + .../include/boost/detail/winapi/wait.hpp | 20 + .../boost/detail/winapi/waitable_timer.hpp | 20 + .../boost/include/boost/detail/workaround.hpp | 10 + .../boost/include/boost/fusion/adapted.hpp | 26 + .../include/boost/fusion/adapted/adt.hpp | 19 + .../boost/fusion/adapted/adt/adapt_adt.hpp | 80 + .../fusion/adapted/adt/adapt_adt_named.hpp | 31 + .../fusion/adapted/adt/adapt_assoc_adt.hpp | 95 + .../adapted/adt/adapt_assoc_adt_named.hpp | 29 + .../fusion/adapted/adt/detail/adapt_base.hpp | 301 ++ .../detail/adapt_base_assoc_attr_filler.hpp | 64 + .../adt/detail/adapt_base_attr_filler.hpp | 92 + .../fusion/adapted/adt/detail/extension.hpp | 41 + .../include/boost/fusion/adapted/array.hpp | 27 + .../boost/fusion/adapted/array/at_impl.hpp | 40 + .../boost/fusion/adapted/array/begin_impl.hpp | 44 + .../fusion/adapted/array/category_of_impl.hpp | 32 + .../boost/fusion/adapted/array/deref_impl.hpp | 42 + .../boost/fusion/adapted/array/end_impl.hpp | 46 + .../fusion/adapted/array/is_sequence_impl.hpp | 29 + .../fusion/adapted/array/is_view_impl.hpp | 29 + .../boost/fusion/adapted/array/size_impl.hpp | 30 + .../boost/fusion/adapted/array/tag_of.hpp | 73 + .../fusion/adapted/array/value_at_impl.hpp | 29 + .../fusion/adapted/array/value_of_impl.hpp | 29 + .../boost/fusion/adapted/boost_array.hpp | 23 + .../adapted/boost_array/array_iterator.hpp | 121 + .../adapted/boost_array/detail/at_impl.hpp | 47 + .../adapted/boost_array/detail/begin_impl.hpp | 42 + .../boost_array/detail/category_of_impl.hpp | 36 + .../adapted/boost_array/detail/end_impl.hpp | 42 + .../boost_array/detail/is_sequence_impl.hpp | 32 + .../boost_array/detail/is_view_impl.hpp | 33 + .../adapted/boost_array/detail/size_impl.hpp | 29 + .../boost_array/detail/value_at_impl.hpp | 32 + .../fusion/adapted/boost_array/tag_of.hpp | 59 + .../boost/fusion/adapted/boost_tuple.hpp | 23 + .../boost_tuple/boost_tuple_iterator.hpp | 221 + .../adapted/boost_tuple/detail/at_impl.hpp | 52 + .../adapted/boost_tuple/detail/begin_impl.hpp | 41 + .../adapted/boost_tuple/detail/build_cons.hpp | 59 + .../boost_tuple/detail/category_of_impl.hpp | 32 + .../boost_tuple/detail/convert_impl.hpp | 50 + .../adapted/boost_tuple/detail/end_impl.hpp | 56 + .../boost_tuple/detail/is_sequence_impl.hpp | 31 + .../boost_tuple/detail/is_view_impl.hpp | 31 + .../adapted/boost_tuple/detail/size_impl.hpp | 32 + .../boost_tuple/detail/value_at_impl.hpp | 31 + .../fusion/adapted/boost_tuple/mpl/clear.hpp | 23 + .../fusion/adapted/boost_tuple/tag_of.hpp | 115 + .../include/boost/fusion/adapted/mpl.hpp | 23 + .../fusion/adapted/mpl/detail/at_impl.hpp | 42 + .../fusion/adapted/mpl/detail/begin_impl.hpp | 47 + .../adapted/mpl/detail/category_of_impl.hpp | 55 + .../fusion/adapted/mpl/detail/empty_impl.hpp | 32 + .../fusion/adapted/mpl/detail/end_impl.hpp | 47 + .../adapted/mpl/detail/has_key_impl.hpp | 32 + .../adapted/mpl/detail/is_sequence_impl.hpp | 32 + .../adapted/mpl/detail/is_view_impl.hpp | 33 + .../fusion/adapted/mpl/detail/size_impl.hpp | 32 + .../adapted/mpl/detail/value_at_impl.hpp | 32 + .../boost/fusion/adapted/mpl/mpl_iterator.hpp | 128 + .../boost/fusion/adapted/std_array.hpp | 23 + .../adapted/std_array/detail/array_size.hpp | 25 + .../adapted/std_array/detail/at_impl.hpp | 45 + .../adapted/std_array/detail/begin_impl.hpp | 41 + .../std_array/detail/category_of_impl.hpp | 35 + .../adapted/std_array/detail/end_impl.hpp | 45 + .../std_array/detail/is_sequence_impl.hpp | 32 + .../adapted/std_array/detail/is_view_impl.hpp | 33 + .../adapted/std_array/detail/size_impl.hpp | 41 + .../std_array/detail/value_at_impl.hpp | 32 + .../adapted/std_array/std_array_iterator.hpp | 109 + .../boost/fusion/adapted/std_array/tag_of.hpp | 52 + .../include/boost/fusion/adapted/std_pair.hpp | 20 + .../boost/fusion/adapted/std_tuple.hpp | 24 + .../adapted/std_tuple/detail/at_impl.hpp | 54 + .../adapted/std_tuple/detail/begin_impl.hpp | 41 + .../std_tuple/detail/build_std_tuple.hpp | 88 + .../std_tuple/detail/category_of_impl.hpp | 32 + .../adapted/std_tuple/detail/convert_impl.hpp | 48 + .../adapted/std_tuple/detail/end_impl.hpp | 45 + .../std_tuple/detail/is_sequence_impl.hpp | 31 + .../adapted/std_tuple/detail/is_view_impl.hpp | 31 + .../adapted/std_tuple/detail/size_impl.hpp | 37 + .../std_tuple/detail/value_at_impl.hpp | 31 + .../fusion/adapted/std_tuple/mpl/clear.hpp | 23 + .../adapted/std_tuple/std_tuple_iterator.hpp | 121 + .../boost/fusion/adapted/std_tuple/tag_of.hpp | 47 + .../include/boost/fusion/adapted/struct.hpp | 22 + .../adapted/struct/adapt_assoc_struct.hpp | 102 + .../struct/adapt_assoc_struct_named.hpp | 29 + .../fusion/adapted/struct/adapt_struct.hpp | 125 + .../adapted/struct/adapt_struct_named.hpp | 55 + .../adapted/struct/define_assoc_struct.hpp | 52 + .../fusion/adapted/struct/define_struct.hpp | 43 + .../adapted/struct/define_struct_inline.hpp | 26 + .../adapted/struct/detail/adapt_auto.hpp | 14 + .../adapted/struct/detail/adapt_base.hpp | 309 ++ .../detail/adapt_base_assoc_attr_filler.hpp | 73 + .../struct/detail/adapt_base_attr_filler.hpp | 70 + .../adapted/struct/detail/adapt_is_tpl.hpp | 16 + .../fusion/adapted/struct/detail/at_impl.hpp | 39 + .../adapted/struct/detail/begin_impl.hpp | 70 + .../struct/detail/category_of_impl.hpp | 42 + .../adapted/struct/detail/define_struct.hpp | 479 +++ .../struct/detail/define_struct_inline.hpp | 529 +++ .../adapted/struct/detail/deref_data_impl.hpp | 22 + .../adapted/struct/detail/deref_impl.hpp | 41 + .../fusion/adapted/struct/detail/end_impl.hpp | 70 + .../adapted/struct/detail/extension.hpp | 58 + .../struct/detail/is_sequence_impl.hpp | 36 + .../adapted/struct/detail/is_view_impl.hpp | 33 + .../adapted/struct/detail/key_of_impl.hpp | 29 + .../adapted/struct/detail/namespace.hpp | 52 + .../struct/detail/preprocessor/is_seq.hpp | 39 + .../adapted/struct/detail/proxy_type.hpp | 43 + .../adapted/struct/detail/size_impl.hpp | 33 + .../adapted/struct/detail/value_at_impl.hpp | 33 + .../struct/detail/value_of_data_impl.hpp | 22 + .../adapted/struct/detail/value_of_impl.hpp | 29 + .../boost/include/boost/fusion/algorithm.hpp | 15 + .../boost/fusion/algorithm/auxiliary.hpp | 16 + .../boost/fusion/algorithm/auxiliary/copy.hpp | 91 + .../boost/fusion/algorithm/auxiliary/move.hpp | 93 + .../boost/fusion/algorithm/iteration.hpp | 18 + .../fusion/algorithm/iteration/accumulate.hpp | 45 + .../algorithm/iteration/accumulate_fwd.hpp | 33 + .../algorithm/iteration/detail/fold.hpp | 294 ++ .../algorithm/iteration/detail/for_each.hpp | 149 + .../iteration/detail/preprocessed/fold.hpp | 189 + .../detail/preprocessed/iter_fold.hpp | 188 + .../detail/preprocessed/reverse_fold.hpp | 188 + .../detail/preprocessed/reverse_iter_fold.hpp | 188 + .../iteration/detail/segmented_fold.hpp | 64 + .../iteration/detail/segmented_for_each.hpp | 52 + .../boost/fusion/algorithm/iteration/fold.hpp | 59 + .../fusion/algorithm/iteration/fold_fwd.hpp | 56 + .../fusion/algorithm/iteration/for_each.hpp | 54 + .../algorithm/iteration/for_each_fwd.hpp | 41 + .../fusion/algorithm/iteration/iter_fold.hpp | 60 + .../algorithm/iteration/iter_fold_fwd.hpp | 56 + .../algorithm/iteration/reverse_fold.hpp | 60 + .../algorithm/iteration/reverse_fold_fwd.hpp | 56 + .../algorithm/iteration/reverse_iter_fold.hpp | 61 + .../iteration/reverse_iter_fold_fwd.hpp | 56 + .../include/boost/fusion/algorithm/query.hpp | 19 + .../boost/fusion/algorithm/query/all.hpp | 36 + .../boost/fusion/algorithm/query/any.hpp | 37 + .../boost/fusion/algorithm/query/count.hpp | 43 + .../boost/fusion/algorithm/query/count_if.hpp | 43 + .../fusion/algorithm/query/detail/all.hpp | 137 + .../fusion/algorithm/query/detail/any.hpp | 140 + .../fusion/algorithm/query/detail/count.hpp | 83 + .../algorithm/query/detail/count_if.hpp | 180 + .../fusion/algorithm/query/detail/find_if.hpp | 260 ++ .../algorithm/query/detail/segmented_find.hpp | 95 + .../query/detail/segmented_find_if.hpp | 95 + .../boost/fusion/algorithm/query/find.hpp | 72 + .../boost/fusion/algorithm/query/find_fwd.hpp | 37 + .../boost/fusion/algorithm/query/find_if.hpp | 67 + .../fusion/algorithm/query/find_if_fwd.hpp | 38 + .../boost/fusion/algorithm/query/none.hpp | 35 + .../boost/fusion/algorithm/transformation.hpp | 32 + .../fusion/algorithm/transformation/clear.hpp | 34 + .../detail/preprocessed/zip.hpp | 22 + .../detail/preprocessed/zip10.hpp | 216 + .../detail/preprocessed/zip20.hpp | 436 ++ .../detail/preprocessed/zip30.hpp | 656 +++ .../detail/preprocessed/zip40.hpp | 876 ++++ .../detail/preprocessed/zip50.hpp | 1096 +++++ .../transformation/detail/replace.hpp | 78 + .../transformation/detail/replace_if.hpp | 78 + .../fusion/algorithm/transformation/erase.hpp | 140 + .../algorithm/transformation/erase_key.hpp | 36 + .../algorithm/transformation/filter.hpp | 36 + .../algorithm/transformation/filter_if.hpp | 34 + .../algorithm/transformation/flatten.hpp | 46 + .../algorithm/transformation/insert.hpp | 69 + .../algorithm/transformation/insert_range.hpp | 56 + .../fusion/algorithm/transformation/join.hpp | 35 + .../algorithm/transformation/pop_back.hpp | 172 + .../algorithm/transformation/pop_front.hpp | 45 + .../algorithm/transformation/push_back.hpp | 47 + .../algorithm/transformation/push_front.hpp | 47 + .../algorithm/transformation/remove.hpp | 37 + .../algorithm/transformation/remove_if.hpp | 37 + .../algorithm/transformation/replace.hpp | 43 + .../algorithm/transformation/replace_if.hpp | 44 + .../algorithm/transformation/reverse.hpp | 40 + .../algorithm/transformation/transform.hpp | 54 + .../fusion/algorithm/transformation/zip.hpp | 118 + .../boost/include/boost/fusion/container.hpp | 18 + .../include/boost/fusion/container/deque.hpp | 17 + .../container/deque/back_extended_deque.hpp | 53 + .../boost/fusion/container/deque/convert.hpp | 61 + .../boost/fusion/container/deque/deque.hpp | 189 + .../fusion/container/deque/deque_fwd.hpp | 49 + .../fusion/container/deque/deque_iterator.hpp | 130 + .../fusion/container/deque/detail/at_impl.hpp | 67 + .../container/deque/detail/begin_impl.hpp | 43 + .../container/deque/detail/build_deque.hpp | 78 + .../container/deque/detail/convert_impl.hpp | 56 + .../container/deque/detail/cpp03/as_deque.hpp | 146 + .../deque/detail/cpp03/build_deque.hpp | 55 + .../container/deque/detail/cpp03/deque.hpp | 207 + .../deque/detail/cpp03/deque_forward_ctor.hpp | 69 + .../deque/detail/cpp03/deque_fwd.hpp | 54 + .../deque/detail/cpp03/deque_initial_size.hpp | 64 + .../deque/detail/cpp03/deque_keyed_values.hpp | 112 + .../detail/cpp03/deque_keyed_values_call.hpp | 72 + .../container/deque/detail/cpp03/limits.hpp | 32 + .../detail/cpp03/preprocessed/as_deque.hpp | 22 + .../detail/cpp03/preprocessed/as_deque10.hpp | 223 + .../detail/cpp03/preprocessed/as_deque20.hpp | 433 ++ .../detail/cpp03/preprocessed/as_deque30.hpp | 643 +++ .../detail/cpp03/preprocessed/as_deque40.hpp | 853 ++++ .../detail/cpp03/preprocessed/as_deque50.hpp | 1063 +++++ .../deque/detail/cpp03/preprocessed/deque.hpp | 22 + .../detail/cpp03/preprocessed/deque10.hpp | 280 ++ .../detail/cpp03/preprocessed/deque10_fwd.hpp | 15 + .../detail/cpp03/preprocessed/deque20.hpp | 460 +++ .../detail/cpp03/preprocessed/deque20_fwd.hpp | 15 + .../detail/cpp03/preprocessed/deque30.hpp | 640 +++ .../detail/cpp03/preprocessed/deque30_fwd.hpp | 15 + .../detail/cpp03/preprocessed/deque40.hpp | 820 ++++ .../detail/cpp03/preprocessed/deque40_fwd.hpp | 15 + .../detail/cpp03/preprocessed/deque50.hpp | 1000 +++++ .../detail/cpp03/preprocessed/deque50_fwd.hpp | 15 + .../detail/cpp03/preprocessed/deque_fwd.hpp | 22 + .../cpp03/preprocessed/deque_initial_size.hpp | 22 + .../preprocessed/deque_initial_size10.hpp | 18 + .../preprocessed/deque_initial_size20.hpp | 18 + .../preprocessed/deque_initial_size30.hpp | 18 + .../preprocessed/deque_initial_size40.hpp | 18 + .../preprocessed/deque_initial_size50.hpp | 18 + .../cpp03/preprocessed/deque_keyed_values.hpp | 22 + .../preprocessed/deque_keyed_values10.hpp | 252 ++ .../preprocessed/deque_keyed_values20.hpp | 462 +++ .../preprocessed/deque_keyed_values30.hpp | 672 +++ .../preprocessed/deque_keyed_values40.hpp | 882 ++++ .../preprocessed/deque_keyed_values50.hpp | 1092 +++++ .../deque/detail/deque_keyed_values.hpp | 76 + .../container/deque/detail/end_impl.hpp | 43 + .../deque/detail/is_sequence_impl.hpp | 32 + .../container/deque/detail/keyed_element.hpp | 171 + .../container/deque/detail/value_at_impl.hpp | 46 + .../container/deque/front_extended_deque.hpp | 51 + .../boost/fusion/container/generation.hpp | 24 + .../fusion/container/generation/cons_tie.hpp | 46 + .../fusion/container/generation/deque_tie.hpp | 47 + .../generation/detail/pp_deque_tie.hpp | 102 + .../generation/detail/pp_list_tie.hpp | 102 + .../generation/detail/pp_make_deque.hpp | 116 + .../generation/detail/pp_make_list.hpp | 115 + .../generation/detail/pp_make_map.hpp | 130 + .../generation/detail/pp_make_set.hpp | 134 + .../generation/detail/pp_make_vector.hpp | 115 + .../generation/detail/pp_map_tie.hpp | 133 + .../generation/detail/pp_vector_tie.hpp | 100 + .../detail/preprocessed/deque_tie.hpp | 22 + .../detail/preprocessed/deque_tie10.hpp | 180 + .../detail/preprocessed/deque_tie20.hpp | 340 ++ .../detail/preprocessed/deque_tie30.hpp | 500 +++ .../detail/preprocessed/deque_tie40.hpp | 660 +++ .../detail/preprocessed/deque_tie50.hpp | 820 ++++ .../detail/preprocessed/list_tie.hpp | 22 + .../detail/preprocessed/list_tie10.hpp | 180 + .../detail/preprocessed/list_tie20.hpp | 340 ++ .../detail/preprocessed/list_tie30.hpp | 500 +++ .../detail/preprocessed/list_tie40.hpp | 660 +++ .../detail/preprocessed/list_tie50.hpp | 820 ++++ .../detail/preprocessed/make_deque.hpp | 22 + .../detail/preprocessed/make_deque10.hpp | 191 + .../detail/preprocessed/make_deque20.hpp | 351 ++ .../detail/preprocessed/make_deque30.hpp | 511 +++ .../detail/preprocessed/make_deque40.hpp | 671 +++ .../detail/preprocessed/make_deque50.hpp | 831 ++++ .../detail/preprocessed/make_list.hpp | 22 + .../detail/preprocessed/make_list10.hpp | 191 + .../detail/preprocessed/make_list20.hpp | 351 ++ .../detail/preprocessed/make_list30.hpp | 511 +++ .../detail/preprocessed/make_list40.hpp | 671 +++ .../detail/preprocessed/make_list50.hpp | 831 ++++ .../detail/preprocessed/make_map.hpp | 22 + .../detail/preprocessed/make_map10.hpp | 252 ++ .../detail/preprocessed/make_map20.hpp | 472 +++ .../detail/preprocessed/make_map30.hpp | 692 ++++ .../detail/preprocessed/make_map40.hpp | 912 ++++ .../detail/preprocessed/make_map50.hpp | 1132 +++++ .../detail/preprocessed/make_set.hpp | 22 + .../detail/preprocessed/make_set10.hpp | 197 + .../detail/preprocessed/make_set20.hpp | 357 ++ .../detail/preprocessed/make_set30.hpp | 517 +++ .../detail/preprocessed/make_set40.hpp | 677 +++ .../detail/preprocessed/make_set50.hpp | 837 ++++ .../detail/preprocessed/make_vector.hpp | 22 + .../detail/preprocessed/make_vector10.hpp | 191 + .../detail/preprocessed/make_vector20.hpp | 351 ++ .../detail/preprocessed/make_vector30.hpp | 511 +++ .../detail/preprocessed/make_vector40.hpp | 671 +++ .../detail/preprocessed/make_vector50.hpp | 831 ++++ .../detail/preprocessed/map_tie.hpp | 22 + .../detail/preprocessed/map_tie10.hpp | 252 ++ .../detail/preprocessed/map_tie20.hpp | 472 +++ .../detail/preprocessed/map_tie30.hpp | 692 ++++ .../detail/preprocessed/map_tie40.hpp | 912 ++++ .../detail/preprocessed/map_tie50.hpp | 1132 +++++ .../detail/preprocessed/vector_tie.hpp | 22 + .../detail/preprocessed/vector_tie10.hpp | 180 + .../detail/preprocessed/vector_tie20.hpp | 340 ++ .../detail/preprocessed/vector_tie30.hpp | 500 +++ .../detail/preprocessed/vector_tie40.hpp | 660 +++ .../detail/preprocessed/vector_tie50.hpp | 820 ++++ .../fusion/container/generation/ignore.hpp | 35 + .../fusion/container/generation/list_tie.hpp | 44 + .../fusion/container/generation/make_cons.hpp | 46 + .../container/generation/make_deque.hpp | 45 + .../fusion/container/generation/make_list.hpp | 46 + .../fusion/container/generation/make_map.hpp | 64 + .../fusion/container/generation/make_set.hpp | 55 + .../container/generation/make_vector.hpp | 55 + .../fusion/container/generation/map_tie.hpp | 48 + .../fusion/container/generation/pair_tie.hpp | 46 + .../container/generation/vector_tie.hpp | 44 + .../include/boost/fusion/container/list.hpp | 17 + .../boost/fusion/container/list/cons.hpp | 144 + .../boost/fusion/container/list/cons_fwd.hpp | 23 + .../fusion/container/list/cons_iterator.hpp | 111 + .../boost/fusion/container/list/convert.hpp | 60 + .../fusion/container/list/detail/at_impl.hpp | 136 + .../container/list/detail/begin_impl.hpp | 51 + .../container/list/detail/build_cons.hpp | 61 + .../container/list/detail/convert_impl.hpp | 53 + .../container/list/detail/cpp03/limits.hpp | 23 + .../container/list/detail/cpp03/list.hpp | 104 + .../list/detail/cpp03/list_forward_ctor.hpp | 48 + .../container/list/detail/cpp03/list_fwd.hpp | 51 + .../list/detail/cpp03/list_to_cons.hpp | 76 + .../list/detail/cpp03/list_to_cons_call.hpp | 44 + .../list/detail/cpp03/preprocessed/list.hpp | 22 + .../list/detail/cpp03/preprocessed/list10.hpp | 100 + .../detail/cpp03/preprocessed/list10_fwd.hpp | 16 + .../list/detail/cpp03/preprocessed/list20.hpp | 140 + .../detail/cpp03/preprocessed/list20_fwd.hpp | 16 + .../list/detail/cpp03/preprocessed/list30.hpp | 180 + .../detail/cpp03/preprocessed/list30_fwd.hpp | 16 + .../list/detail/cpp03/preprocessed/list40.hpp | 220 + .../detail/cpp03/preprocessed/list40_fwd.hpp | 16 + .../list/detail/cpp03/preprocessed/list50.hpp | 260 ++ .../detail/cpp03/preprocessed/list50_fwd.hpp | 16 + .../detail/cpp03/preprocessed/list_fwd.hpp | 22 + .../cpp03/preprocessed/list_to_cons.hpp | 22 + .../cpp03/preprocessed/list_to_cons10.hpp | 96 + .../cpp03/preprocessed/list_to_cons20.hpp | 166 + .../cpp03/preprocessed/list_to_cons30.hpp | 236 ++ .../cpp03/preprocessed/list_to_cons40.hpp | 306 ++ .../cpp03/preprocessed/list_to_cons50.hpp | 376 ++ .../container/list/detail/deref_impl.hpp | 54 + .../container/list/detail/empty_impl.hpp | 39 + .../fusion/container/list/detail/end_impl.hpp | 53 + .../container/list/detail/equal_to_impl.hpp | 40 + .../container/list/detail/list_to_cons.hpp | 61 + .../container/list/detail/next_impl.hpp | 61 + .../container/list/detail/reverse_cons.hpp | 46 + .../container/list/detail/value_at_impl.hpp | 43 + .../container/list/detail/value_of_impl.hpp | 36 + .../boost/fusion/container/list/list.hpp | 127 + .../boost/fusion/container/list/list_fwd.hpp | 43 + .../boost/fusion/container/list/nil.hpp | 51 + .../include/boost/fusion/container/map.hpp | 15 + .../boost/fusion/container/map/convert.hpp | 117 + .../fusion/container/map/detail/at_impl.hpp | 61 + .../container/map/detail/at_key_impl.hpp | 62 + .../container/map/detail/begin_impl.hpp | 40 + .../fusion/container/map/detail/build_map.hpp | 80 + .../container/map/detail/cpp03/as_map.hpp | 149 + .../container/map/detail/cpp03/at_impl.hpp | 64 + .../container/map/detail/cpp03/begin_impl.hpp | 45 + .../container/map/detail/cpp03/convert.hpp | 57 + .../map/detail/cpp03/convert_impl.hpp | 54 + .../map/detail/cpp03/deref_data_impl.hpp | 49 + .../container/map/detail/cpp03/deref_impl.hpp | 47 + .../container/map/detail/cpp03/end_impl.hpp | 45 + .../map/detail/cpp03/key_of_impl.hpp | 33 + .../container/map/detail/cpp03/limits.hpp | 28 + .../fusion/container/map/detail/cpp03/map.hpp | 156 + .../map/detail/cpp03/map_forward_ctor.hpp | 63 + .../container/map/detail/cpp03/map_fwd.hpp | 53 + .../map/detail/cpp03/preprocessed/as_map.hpp | 22 + .../detail/cpp03/preprocessed/as_map10.hpp | 223 + .../detail/cpp03/preprocessed/as_map20.hpp | 433 ++ .../detail/cpp03/preprocessed/as_map30.hpp | 643 +++ .../detail/cpp03/preprocessed/as_map40.hpp | 853 ++++ .../detail/cpp03/preprocessed/as_map50.hpp | 1063 +++++ .../map/detail/cpp03/preprocessed/map.hpp | 22 + .../map/detail/cpp03/preprocessed/map10.hpp | 178 + .../detail/cpp03/preprocessed/map10_fwd.hpp | 18 + .../map/detail/cpp03/preprocessed/map20.hpp | 278 ++ .../detail/cpp03/preprocessed/map20_fwd.hpp | 18 + .../map/detail/cpp03/preprocessed/map30.hpp | 378 ++ .../detail/cpp03/preprocessed/map30_fwd.hpp | 18 + .../map/detail/cpp03/preprocessed/map40.hpp | 478 +++ .../detail/cpp03/preprocessed/map40_fwd.hpp | 18 + .../map/detail/cpp03/preprocessed/map50.hpp | 578 +++ .../detail/cpp03/preprocessed/map50_fwd.hpp | 18 + .../map/detail/cpp03/preprocessed/map_fwd.hpp | 22 + .../map/detail/cpp03/value_at_impl.hpp | 35 + .../map/detail/cpp03/value_of_data_impl.hpp | 33 + .../map/detail/cpp03/value_of_impl.hpp | 40 + .../fusion/container/map/detail/end_impl.hpp | 40 + .../fusion/container/map/detail/map_impl.hpp | 206 + .../fusion/container/map/detail/map_index.hpp | 19 + .../container/map/detail/value_at_impl.hpp | 39 + .../map/detail/value_at_key_impl.hpp | 40 + .../boost/fusion/container/map/map.hpp | 131 + .../boost/fusion/container/map/map_fwd.hpp | 51 + .../fusion/container/map/map_iterator.hpp | 175 + .../include/boost/fusion/container/set.hpp | 15 + .../boost/fusion/container/set/convert.hpp | 50 + .../fusion/container/set/detail/as_set.hpp | 67 + .../container/set/detail/begin_impl.hpp | 45 + .../container/set/detail/convert_impl.hpp | 47 + .../container/set/detail/cpp03/as_set.hpp | 145 + .../container/set/detail/cpp03/limits.hpp | 28 + .../set/detail/cpp03/preprocessed/as_set.hpp | 22 + .../detail/cpp03/preprocessed/as_set10.hpp | 223 + .../detail/cpp03/preprocessed/as_set20.hpp | 433 ++ .../detail/cpp03/preprocessed/as_set30.hpp | 643 +++ .../detail/cpp03/preprocessed/as_set40.hpp | 853 ++++ .../detail/cpp03/preprocessed/as_set50.hpp | 1063 +++++ .../set/detail/cpp03/preprocessed/set.hpp | 22 + .../set/detail/cpp03/preprocessed/set10.hpp | 77 + .../detail/cpp03/preprocessed/set10_fwd.hpp | 18 + .../set/detail/cpp03/preprocessed/set20.hpp | 107 + .../detail/cpp03/preprocessed/set20_fwd.hpp | 18 + .../set/detail/cpp03/preprocessed/set30.hpp | 137 + .../detail/cpp03/preprocessed/set30_fwd.hpp | 18 + .../set/detail/cpp03/preprocessed/set40.hpp | 167 + .../detail/cpp03/preprocessed/set40_fwd.hpp | 18 + .../set/detail/cpp03/preprocessed/set50.hpp | 197 + .../detail/cpp03/preprocessed/set50_fwd.hpp | 18 + .../set/detail/cpp03/preprocessed/set_fwd.hpp | 22 + .../fusion/container/set/detail/cpp03/set.hpp | 107 + .../set/detail/cpp03/set_forward_ctor.hpp | 40 + .../container/set/detail/cpp03/set_fwd.hpp | 53 + .../container/set/detail/deref_data_impl.hpp | 25 + .../container/set/detail/deref_impl.hpp | 47 + .../fusion/container/set/detail/end_impl.hpp | 45 + .../container/set/detail/key_of_impl.hpp | 25 + .../set/detail/value_of_data_impl.hpp | 24 + .../container/set/detail/value_of_impl.hpp | 35 + .../boost/fusion/container/set/set.hpp | 140 + .../boost/fusion/container/set/set_fwd.hpp | 46 + .../include/boost/fusion/container/vector.hpp | 15 + .../boost/fusion/container/vector/convert.hpp | 50 + .../container/vector/detail/advance_impl.hpp | 43 + .../container/vector/detail/as_vector.hpp | 70 + .../container/vector/detail/at_impl.hpp | 60 + .../container/vector/detail/begin_impl.hpp | 41 + .../fusion/container/vector/detail/config.hpp | 37 + .../container/vector/detail/convert_impl.hpp | 47 + .../vector/detail/cpp03/as_vector.hpp | 145 + .../container/vector/detail/cpp03/limits.hpp | 25 + .../detail/cpp03/preprocessed/as_vector.hpp | 22 + .../detail/cpp03/preprocessed/as_vector10.hpp | 223 + .../detail/cpp03/preprocessed/as_vector20.hpp | 433 ++ .../detail/cpp03/preprocessed/as_vector30.hpp | 643 +++ .../detail/cpp03/preprocessed/as_vector40.hpp | 853 ++++ .../detail/cpp03/preprocessed/as_vector50.hpp | 1063 +++++ .../detail/cpp03/preprocessed/vector.hpp | 22 + .../detail/cpp03/preprocessed/vector10.hpp | 1830 ++++++++ .../cpp03/preprocessed/vector10_fwd.hpp | 33 + .../detail/cpp03/preprocessed/vector20.hpp | 1824 ++++++++ .../cpp03/preprocessed/vector20_fwd.hpp | 33 + .../detail/cpp03/preprocessed/vector30.hpp | 1824 ++++++++ .../cpp03/preprocessed/vector30_fwd.hpp | 33 + .../detail/cpp03/preprocessed/vector40.hpp | 1824 ++++++++ .../cpp03/preprocessed/vector40_fwd.hpp | 33 + .../detail/cpp03/preprocessed/vector50.hpp | 1824 ++++++++ .../cpp03/preprocessed/vector50_fwd.hpp | 33 + .../cpp03/preprocessed/vector_chooser.hpp | 21 + .../cpp03/preprocessed/vector_chooser10.hpp | 84 + .../cpp03/preprocessed/vector_chooser20.hpp | 154 + .../cpp03/preprocessed/vector_chooser30.hpp | 224 + .../cpp03/preprocessed/vector_chooser40.hpp | 294 ++ .../cpp03/preprocessed/vector_chooser50.hpp | 364 ++ .../detail/cpp03/preprocessed/vector_fwd.hpp | 22 + .../detail/cpp03/preprocessed/vvector10.hpp | 325 ++ .../cpp03/preprocessed/vvector10_fwd.hpp | 16 + .../detail/cpp03/preprocessed/vvector20.hpp | 505 +++ .../cpp03/preprocessed/vvector20_fwd.hpp | 16 + .../detail/cpp03/preprocessed/vvector30.hpp | 685 +++ .../cpp03/preprocessed/vvector30_fwd.hpp | 16 + .../detail/cpp03/preprocessed/vvector40.hpp | 865 ++++ .../cpp03/preprocessed/vvector40_fwd.hpp | 16 + .../detail/cpp03/preprocessed/vvector50.hpp | 1045 +++++ .../cpp03/preprocessed/vvector50_fwd.hpp | 16 + .../vector/detail/cpp03/value_at_impl.hpp | 34 + .../container/vector/detail/cpp03/vector.hpp | 254 ++ .../vector/detail/cpp03/vector10.hpp | 105 + .../vector/detail/cpp03/vector10_fwd.hpp | 64 + .../vector/detail/cpp03/vector20.hpp | 81 + .../vector/detail/cpp03/vector20_fwd.hpp | 59 + .../vector/detail/cpp03/vector30.hpp | 80 + .../vector/detail/cpp03/vector30_fwd.hpp | 59 + .../vector/detail/cpp03/vector40.hpp | 81 + .../vector/detail/cpp03/vector40_fwd.hpp | 59 + .../vector/detail/cpp03/vector50.hpp | 80 + .../vector/detail/cpp03/vector50_fwd.hpp | 59 + .../detail/cpp03/vector_forward_ctor.hpp | 79 + .../vector/detail/cpp03/vector_fwd.hpp | 66 + .../vector/detail/cpp03/vector_n.hpp | 354 ++ .../vector/detail/cpp03/vector_n_chooser.hpp | 107 + .../container/vector/detail/deref_impl.hpp | 54 + .../container/vector/detail/distance_impl.hpp | 43 + .../container/vector/detail/end_impl.hpp | 42 + .../container/vector/detail/equal_to_impl.hpp | 40 + .../container/vector/detail/next_impl.hpp | 45 + .../container/vector/detail/prior_impl.hpp | 45 + .../container/vector/detail/value_at_impl.hpp | 62 + .../container/vector/detail/value_of_impl.hpp | 36 + .../boost/fusion/container/vector/vector.hpp | 322 ++ .../fusion/container/vector/vector10.hpp | 29 + .../fusion/container/vector/vector20.hpp | 29 + .../fusion/container/vector/vector30.hpp | 29 + .../fusion/container/vector/vector40.hpp | 29 + .../fusion/container/vector/vector50.hpp | 29 + .../fusion/container/vector/vector_fwd.hpp | 43 + .../container/vector/vector_iterator.hpp | 62 + .../boost/include/boost/fusion/functional.hpp | 18 + .../boost/fusion/functional/adapter.hpp | 17 + .../functional/adapter/detail/access.hpp | 41 + .../boost/fusion/functional/adapter/fused.hpp | 101 + .../adapter/fused_function_object.hpp | 106 + .../functional/adapter/fused_procedure.hpp | 86 + .../fusion/functional/adapter/limits.hpp | 31 + .../fusion/functional/adapter/unfused.hpp | 180 + .../functional/adapter/unfused_typed.hpp | 179 + .../boost/fusion/functional/generation.hpp | 18 + .../generation/detail/gen_make_adapter.hpp | 45 + .../functional/generation/make_fused.hpp | 19 + .../generation/make_fused_function_object.hpp | 19 + .../generation/make_fused_procedure.hpp | 19 + .../functional/generation/make_unfused.hpp | 19 + .../boost/fusion/functional/invocation.hpp | 17 + .../functional/invocation/detail/that_ptr.hpp | 99 + .../fusion/functional/invocation/invoke.hpp | 414 ++ .../invocation/invoke_function_object.hpp | 214 + .../invocation/invoke_procedure.hpp | 212 + .../fusion/functional/invocation/limits.hpp | 23 + .../boost/fusion/include/accumulate.hpp | 13 + .../boost/fusion/include/adapt_adt.hpp | 14 + .../boost/fusion/include/adapt_adt_named.hpp | 14 + .../boost/fusion/include/adapt_assoc_adt.hpp | 14 + .../fusion/include/adapt_assoc_adt_named.hpp | 14 + .../fusion/include/adapt_assoc_struct.hpp | 14 + .../include/adapt_assoc_struct_named.hpp | 14 + .../boost/fusion/include/adapt_struct.hpp | 14 + .../fusion/include/adapt_struct_named.hpp | 14 + .../include/boost/fusion/include/adapted.hpp | 13 + .../include/boost/fusion/include/adapter.hpp | 13 + .../include/boost/fusion/include/advance.hpp | 13 + .../boost/fusion/include/algorithm.hpp | 13 + .../include/boost/fusion/include/all.hpp | 13 + .../include/boost/fusion/include/any.hpp | 13 + .../include/boost/fusion/include/array.hpp | 13 + .../include/boost/fusion/include/as_deque.hpp | 13 + .../include/boost/fusion/include/as_list.hpp | 13 + .../include/boost/fusion/include/as_map.hpp | 13 + .../include/boost/fusion/include/as_set.hpp | 13 + .../boost/fusion/include/as_vector.hpp | 13 + .../boost/include/boost/fusion/include/at.hpp | 13 + .../include/boost/fusion/include/at_c.hpp | 13 + .../include/boost/fusion/include/at_key.hpp | 13 + .../boost/fusion/include/auxiliary.hpp | 13 + .../include/boost/fusion/include/back.hpp | 13 + .../include/boost/fusion/include/begin.hpp | 13 + .../boost/fusion/include/boost_array.hpp | 13 + .../boost/fusion/include/boost_tuple.hpp | 13 + .../boost/fusion/include/category_of.hpp | 13 + .../include/boost/fusion/include/clear.hpp | 13 + .../boost/fusion/include/comparison.hpp | 13 + .../include/boost/fusion/include/cons.hpp | 13 + .../include/boost/fusion/include/cons_tie.hpp | 13 + .../boost/fusion/include/container.hpp | 13 + .../include/boost/fusion/include/convert.hpp | 13 + .../include/boost/fusion/include/copy.hpp | 13 + .../include/boost/fusion/include/count.hpp | 13 + .../include/boost/fusion/include/count_if.hpp | 13 + .../include/boost/fusion/include/deduce.hpp | 13 + .../boost/fusion/include/deduce_sequence.hpp | 13 + .../fusion/include/define_assoc_struct.hpp | 14 + .../boost/fusion/include/define_struct.hpp | 14 + .../fusion/include/define_struct_inline.hpp | 14 + .../include/boost/fusion/include/deque.hpp | 13 + .../boost/fusion/include/deque_fwd.hpp | 13 + .../boost/fusion/include/deque_tie.hpp | 14 + .../include/boost/fusion/include/deref.hpp | 13 + .../boost/fusion/include/deref_data.hpp | 14 + .../include/boost/fusion/include/distance.hpp | 13 + .../include/boost/fusion/include/empty.hpp | 13 + .../include/boost/fusion/include/end.hpp | 13 + .../include/boost/fusion/include/equal_to.hpp | 14 + .../include/boost/fusion/include/erase.hpp | 13 + .../boost/fusion/include/erase_key.hpp | 13 + .../include/boost/fusion/include/filter.hpp | 13 + .../boost/fusion/include/filter_if.hpp | 13 + .../boost/fusion/include/filter_view.hpp | 13 + .../include/boost/fusion/include/find.hpp | 13 + .../include/boost/fusion/include/find_if.hpp | 13 + .../include/boost/fusion/include/flatten.hpp | 14 + .../boost/fusion/include/flatten_view.hpp | 14 + .../include/boost/fusion/include/fold.hpp | 13 + .../include/boost/fusion/include/for_each.hpp | 13 + .../include/boost/fusion/include/front.hpp | 13 + .../boost/fusion/include/functional.hpp | 13 + .../include/boost/fusion/include/fused.hpp | 13 + .../fusion/include/fused_function_object.hpp | 13 + .../boost/fusion/include/fused_procedure.hpp | 13 + .../boost/fusion/include/generation.hpp | 14 + .../include/boost/fusion/include/greater.hpp | 13 + .../boost/fusion/include/greater_equal.hpp | 13 + .../include/boost/fusion/include/has_key.hpp | 13 + .../include/boost/fusion/include/hash.hpp | 12 + .../include/boost/fusion/include/ignore.hpp | 14 + .../boost/include/boost/fusion/include/in.hpp | 13 + .../include/boost/fusion/include/insert.hpp | 13 + .../boost/fusion/include/insert_range.hpp | 13 + .../boost/fusion/include/intrinsic.hpp | 13 + .../boost/fusion/include/invocation.hpp | 13 + .../include/boost/fusion/include/invoke.hpp | 13 + .../fusion/include/invoke_function_object.hpp | 13 + .../boost/fusion/include/invoke_procedure.hpp | 13 + .../boost/include/boost/fusion/include/io.hpp | 13 + .../boost/fusion/include/is_iterator.hpp | 13 + .../boost/fusion/include/is_segmented.hpp | 13 + .../boost/fusion/include/is_sequence.hpp | 13 + .../include/boost/fusion/include/is_view.hpp | 13 + .../boost/fusion/include/iter_fold.hpp | 14 + .../boost/fusion/include/iteration.hpp | 13 + .../include/boost/fusion/include/iterator.hpp | 13 + .../boost/fusion/include/iterator_adapter.hpp | 13 + .../boost/fusion/include/iterator_base.hpp | 13 + .../boost/fusion/include/iterator_facade.hpp | 13 + .../boost/fusion/include/iterator_range.hpp | 13 + .../include/boost/fusion/include/join.hpp | 13 + .../boost/fusion/include/joint_view.hpp | 13 + .../include/boost/fusion/include/key_of.hpp | 14 + .../include/boost/fusion/include/less.hpp | 13 + .../boost/fusion/include/less_equal.hpp | 13 + .../include/boost/fusion/include/list.hpp | 13 + .../include/boost/fusion/include/list_fwd.hpp | 13 + .../include/boost/fusion/include/list_tie.hpp | 14 + .../boost/fusion/include/make_cons.hpp | 13 + .../boost/fusion/include/make_deque.hpp | 13 + .../boost/fusion/include/make_fused.hpp | 13 + .../include/make_fused_function_object.hpp | 13 + .../fusion/include/make_fused_procedure.hpp | 13 + .../boost/fusion/include/make_list.hpp | 13 + .../include/boost/fusion/include/make_map.hpp | 13 + .../include/boost/fusion/include/make_set.hpp | 13 + .../boost/fusion/include/make_tuple.hpp | 13 + .../boost/fusion/include/make_unfused.hpp | 14 + .../boost/fusion/include/make_vector.hpp | 13 + .../include/boost/fusion/include/map.hpp | 13 + .../include/boost/fusion/include/map_fwd.hpp | 13 + .../include/boost/fusion/include/map_tie.hpp | 13 + .../include/boost/fusion/include/move.hpp | 13 + .../include/boost/fusion/include/mpl.hpp | 14 + .../include/boost/fusion/include/next.hpp | 13 + .../include/boost/fusion/include/nil.hpp | 13 + .../include/boost/fusion/include/none.hpp | 13 + .../boost/fusion/include/not_equal_to.hpp | 14 + .../include/boost/fusion/include/nview.hpp | 13 + .../include/boost/fusion/include/out.hpp | 13 + .../include/boost/fusion/include/pair.hpp | 13 + .../include/boost/fusion/include/pair_tie.hpp | 13 + .../include/boost/fusion/include/pop_back.hpp | 13 + .../boost/fusion/include/pop_front.hpp | 13 + .../include/boost/fusion/include/prior.hpp | 13 + .../boost/fusion/include/proxy_type.hpp | 14 + .../boost/fusion/include/push_back.hpp | 13 + .../boost/fusion/include/push_front.hpp | 13 + .../include/boost/fusion/include/query.hpp | 13 + .../include/boost/fusion/include/remove.hpp | 13 + .../boost/fusion/include/remove_if.hpp | 13 + .../boost/fusion/include/repetitive_view.hpp | 13 + .../include/boost/fusion/include/replace.hpp | 13 + .../boost/fusion/include/replace_if.hpp | 13 + .../include/boost/fusion/include/reverse.hpp | 13 + .../boost/fusion/include/reverse_fold.hpp | 14 + .../fusion/include/reverse_iter_fold.hpp | 14 + .../boost/fusion/include/reverse_view.hpp | 13 + .../fusion/include/segmented_fold_until.hpp | 13 + .../fusion/include/segmented_iterator.hpp | 13 + .../include/boost/fusion/include/segments.hpp | 13 + .../include/boost/fusion/include/sequence.hpp | 13 + .../boost/fusion/include/sequence_base.hpp | 13 + .../boost/fusion/include/sequence_facade.hpp | 13 + .../include/boost/fusion/include/set.hpp | 13 + .../include/boost/fusion/include/set_fwd.hpp | 13 + .../boost/fusion/include/single_view.hpp | 13 + .../include/boost/fusion/include/size.hpp | 13 + .../boost/fusion/include/std_array.hpp | 13 + .../include/boost/fusion/include/std_pair.hpp | 13 + .../boost/fusion/include/std_tuple.hpp | 12 + .../include/boost/fusion/include/struct.hpp | 13 + .../include/boost/fusion/include/support.hpp | 13 + .../include/boost/fusion/include/swap.hpp | 13 + .../include/boost/fusion/include/tag_of.hpp | 13 + .../boost/fusion/include/tag_of_fwd.hpp | 13 + .../boost/fusion/include/transform.hpp | 13 + .../boost/fusion/include/transform_view.hpp | 13 + .../boost/fusion/include/transformation.hpp | 13 + .../include/boost/fusion/include/tuple.hpp | 13 + .../boost/fusion/include/tuple_fwd.hpp | 13 + .../boost/fusion/include/tuple_tie.hpp | 13 + .../include/boost/fusion/include/unfused.hpp | 14 + .../boost/fusion/include/unfused_typed.hpp | 13 + .../include/boost/fusion/include/unused.hpp | 13 + .../include/boost/fusion/include/value_at.hpp | 13 + .../boost/fusion/include/value_at_key.hpp | 13 + .../include/boost/fusion/include/value_of.hpp | 13 + .../boost/fusion/include/value_of_data.hpp | 14 + .../include/boost/fusion/include/vector.hpp | 13 + .../include/boost/fusion/include/vector10.hpp | 13 + .../include/boost/fusion/include/vector20.hpp | 13 + .../include/boost/fusion/include/vector30.hpp | 13 + .../include/boost/fusion/include/vector40.hpp | 13 + .../include/boost/fusion/include/vector50.hpp | 13 + .../boost/fusion/include/vector_fwd.hpp | 13 + .../boost/fusion/include/vector_tie.hpp | 13 + .../include/boost/fusion/include/view.hpp | 13 + .../include/boost/fusion/include/void.hpp | 13 + .../include/boost/fusion/include/zip.hpp | 13 + .../include/boost/fusion/include/zip_view.hpp | 13 + .../boost/include/boost/fusion/iterator.hpp | 23 + .../include/boost/fusion/iterator/advance.hpp | 95 + .../boost/fusion/iterator/basic_iterator.hpp | 156 + .../include/boost/fusion/iterator/deref.hpp | 75 + .../boost/fusion/iterator/deref_data.hpp | 51 + .../iterator/detail/adapt_deref_traits.hpp | 36 + .../iterator/detail/adapt_value_traits.hpp | 29 + .../boost/fusion/iterator/detail/advance.hpp | 107 + .../boost/fusion/iterator/detail/distance.hpp | 66 + .../iterator/detail/segment_sequence.hpp | 73 + .../iterator/detail/segmented_equal_to.hpp | 42 + .../iterator/detail/segmented_iterator.hpp | 148 + .../iterator/detail/segmented_next_impl.hpp | 265 ++ .../boost/fusion/iterator/distance.hpp | 80 + .../boost/fusion/iterator/equal_to.hpp | 106 + .../fusion/iterator/iterator_adapter.hpp | 147 + .../boost/fusion/iterator/iterator_facade.hpp | 68 + .../include/boost/fusion/iterator/key_of.hpp | 43 + .../include/boost/fusion/iterator/mpl.hpp | 14 + .../fusion/iterator/mpl/convert_iterator.hpp | 62 + .../fusion/iterator/mpl/fusion_iterator.hpp | 80 + .../include/boost/fusion/iterator/next.hpp | 65 + .../include/boost/fusion/iterator/prior.hpp | 65 + .../fusion/iterator/segmented_iterator.hpp | 16 + .../boost/fusion/iterator/value_of.hpp | 58 + .../boost/fusion/iterator/value_of_data.hpp | 43 + libraries/boost/include/boost/fusion/mpl.hpp | 32 + .../boost/include/boost/fusion/mpl/at.hpp | 34 + .../boost/include/boost/fusion/mpl/back.hpp | 33 + .../boost/include/boost/fusion/mpl/begin.hpp | 32 + .../boost/include/boost/fusion/mpl/clear.hpp | 34 + .../include/boost/fusion/mpl/detail/clear.hpp | 47 + .../boost/include/boost/fusion/mpl/empty.hpp | 27 + .../boost/include/boost/fusion/mpl/end.hpp | 32 + .../boost/include/boost/fusion/mpl/erase.hpp | 40 + .../include/boost/fusion/mpl/erase_key.hpp | 40 + .../boost/include/boost/fusion/mpl/front.hpp | 29 + .../include/boost/fusion/mpl/has_key.hpp | 28 + .../boost/include/boost/fusion/mpl/insert.hpp | 40 + .../include/boost/fusion/mpl/insert_range.hpp | 40 + .../include/boost/fusion/mpl/pop_back.hpp | 40 + .../include/boost/fusion/mpl/pop_front.hpp | 40 + .../include/boost/fusion/mpl/push_back.hpp | 40 + .../include/boost/fusion/mpl/push_front.hpp | 40 + .../boost/include/boost/fusion/mpl/size.hpp | 27 + .../boost/include/boost/fusion/sequence.hpp | 17 + .../boost/fusion/sequence/comparison.hpp | 18 + .../sequence/comparison/detail/equal_to.hpp | 66 + .../sequence/comparison/detail/greater.hpp | 55 + .../comparison/detail/greater_equal.hpp | 55 + .../sequence/comparison/detail/less.hpp | 55 + .../sequence/comparison/detail/less_equal.hpp | 55 + .../comparison/detail/not_equal_to.hpp | 66 + .../sequence/comparison/enable_comparison.hpp | 35 + .../fusion/sequence/comparison/equal_to.hpp | 59 + .../fusion/sequence/comparison/greater.hpp | 55 + .../sequence/comparison/greater_equal.hpp | 55 + .../boost/fusion/sequence/comparison/less.hpp | 46 + .../fusion/sequence/comparison/less_equal.hpp | 55 + .../sequence/comparison/not_equal_to.hpp | 58 + .../include/boost/fusion/sequence/convert.hpp | 61 + .../include/boost/fusion/sequence/hash.hpp | 42 + .../boost/fusion/sequence/intrinsic.hpp | 25 + .../boost/fusion/sequence/intrinsic/at.hpp | 134 + .../boost/fusion/sequence/intrinsic/at_c.hpp | 14 + .../fusion/sequence/intrinsic/at_key.hpp | 116 + .../boost/fusion/sequence/intrinsic/back.hpp | 46 + .../boost/fusion/sequence/intrinsic/begin.hpp | 98 + .../intrinsic/detail/segmented_begin.hpp | 45 + .../intrinsic/detail/segmented_begin_impl.hpp | 96 + .../intrinsic/detail/segmented_end.hpp | 41 + .../intrinsic/detail/segmented_end_impl.hpp | 68 + .../intrinsic/detail/segmented_size.hpp | 55 + .../boost/fusion/sequence/intrinsic/empty.hpp | 63 + .../boost/fusion/sequence/intrinsic/end.hpp | 98 + .../boost/fusion/sequence/intrinsic/front.hpp | 45 + .../fusion/sequence/intrinsic/has_key.hpp | 81 + .../fusion/sequence/intrinsic/segments.hpp | 79 + .../boost/fusion/sequence/intrinsic/size.hpp | 86 + .../boost/fusion/sequence/intrinsic/swap.hpp | 64 + .../fusion/sequence/intrinsic/value_at.hpp | 88 + .../sequence/intrinsic/value_at_key.hpp | 86 + .../boost/fusion/sequence/intrinsic_fwd.hpp | 223 + .../include/boost/fusion/sequence/io.hpp | 14 + .../boost/fusion/sequence/io/detail/in.hpp | 86 + .../boost/fusion/sequence/io/detail/manip.hpp | 269 ++ .../boost/fusion/sequence/io/detail/out.hpp | 86 + .../include/boost/fusion/sequence/io/in.hpp | 43 + .../include/boost/fusion/sequence/io/out.hpp | 45 + .../boost/fusion/sequence/sequence_facade.hpp | 30 + .../boost/include/boost/fusion/support.hpp | 25 + .../include/boost/fusion/support/as_const.hpp | 30 + .../boost/fusion/support/category_of.hpp | 122 + .../include/boost/fusion/support/config.hpp | 99 + .../include/boost/fusion/support/deduce.hpp | 137 + .../boost/fusion/support/deduce_sequence.hpp | 54 + .../boost/fusion/support/detail/access.hpp | 65 + .../boost/fusion/support/detail/and.hpp | 39 + .../support/detail/as_fusion_element.hpp | 60 + .../fusion/support/detail/category_of.hpp | 19 + .../boost/fusion/support/detail/enabler.hpp | 22 + .../fusion/support/detail/index_sequence.hpp | 79 + .../fusion/support/detail/is_mpl_sequence.hpp | 29 + .../fusion/support/detail/is_same_size.hpp | 29 + .../boost/fusion/support/detail/is_view.hpp | 19 + .../support/detail/mpl_iterator_category.hpp | 66 + .../boost/fusion/support/detail/pp_round.hpp | 72 + .../detail/segmented_fold_until_impl.hpp | 401 ++ .../fusion/support/detail/unknown_key.hpp | 16 + .../boost/fusion/support/is_iterator.hpp | 21 + .../boost/fusion/support/is_segmented.hpp | 55 + .../boost/fusion/support/is_sequence.hpp | 82 + .../include/boost/fusion/support/is_view.hpp | 67 + .../boost/fusion/support/iterator_base.hpp | 36 + .../include/boost/fusion/support/pair.hpp | 168 + .../fusion/support/segmented_fold_until.hpp | 71 + .../boost/fusion/support/sequence_base.hpp | 59 + .../include/boost/fusion/support/tag_of.hpp | 83 + .../boost/fusion/support/tag_of_fwd.hpp | 20 + .../include/boost/fusion/support/unused.hpp | 95 + .../include/boost/fusion/support/void.hpp | 15 + .../boost/include/boost/fusion/tuple.hpp | 17 + .../boost/fusion/tuple/detail/make_tuple.hpp | 86 + .../tuple/detail/preprocessed/make_tuple.hpp | 21 + .../detail/preprocessed/make_tuple10.hpp | 91 + .../detail/preprocessed/make_tuple20.hpp | 171 + .../detail/preprocessed/make_tuple30.hpp | 251 ++ .../detail/preprocessed/make_tuple40.hpp | 331 ++ .../detail/preprocessed/make_tuple50.hpp | 411 ++ .../tuple/detail/preprocessed/tuple.hpp | 22 + .../tuple/detail/preprocessed/tuple10.hpp | 209 + .../tuple/detail/preprocessed/tuple10_fwd.hpp | 16 + .../tuple/detail/preprocessed/tuple20.hpp | 349 ++ .../tuple/detail/preprocessed/tuple20_fwd.hpp | 16 + .../tuple/detail/preprocessed/tuple30.hpp | 489 +++ .../tuple/detail/preprocessed/tuple30_fwd.hpp | 16 + .../tuple/detail/preprocessed/tuple40.hpp | 629 +++ .../tuple/detail/preprocessed/tuple40_fwd.hpp | 16 + .../tuple/detail/preprocessed/tuple50.hpp | 769 ++++ .../tuple/detail/preprocessed/tuple50_fwd.hpp | 16 + .../tuple/detail/preprocessed/tuple_fwd.hpp | 21 + .../tuple/detail/preprocessed/tuple_tie.hpp | 21 + .../tuple/detail/preprocessed/tuple_tie10.hpp | 91 + .../tuple/detail/preprocessed/tuple_tie20.hpp | 171 + .../tuple/detail/preprocessed/tuple_tie30.hpp | 251 ++ .../tuple/detail/preprocessed/tuple_tie40.hpp | 331 ++ .../tuple/detail/preprocessed/tuple_tie50.hpp | 411 ++ .../boost/fusion/tuple/detail/tuple.hpp | 122 + .../fusion/tuple/detail/tuple_expand.hpp | 53 + .../boost/fusion/tuple/detail/tuple_fwd.hpp | 52 + .../boost/fusion/tuple/detail/tuple_tie.hpp | 76 + .../include/boost/fusion/tuple/make_tuple.hpp | 50 + .../include/boost/fusion/tuple/tuple.hpp | 127 + .../include/boost/fusion/tuple/tuple_fwd.hpp | 43 + .../include/boost/fusion/tuple/tuple_tie.hpp | 38 + libraries/boost/include/boost/fusion/view.hpp | 21 + .../view/detail/strictest_traversal.hpp | 78 + .../include/boost/fusion/view/filter_view.hpp | 14 + .../view/filter_view/detail/begin_impl.hpp | 47 + .../filter_view/detail/deref_data_impl.hpp | 39 + .../view/filter_view/detail/deref_impl.hpp | 30 + .../view/filter_view/detail/end_impl.hpp | 46 + .../view/filter_view/detail/equal_to_impl.hpp | 34 + .../view/filter_view/detail/key_of_impl.hpp | 29 + .../view/filter_view/detail/next_impl.hpp | 79 + .../view/filter_view/detail/size_impl.hpp | 39 + .../filter_view/detail/value_of_data_impl.hpp | 29 + .../view/filter_view/detail/value_of_impl.hpp | 30 + .../fusion/view/filter_view/filter_view.hpp | 68 + .../view/filter_view/filter_view_iterator.hpp | 81 + .../boost/fusion/view/flatten_view.hpp | 15 + .../fusion/view/flatten_view/flatten_view.hpp | 133 + .../flatten_view/flatten_view_iterator.hpp | 218 + .../boost/fusion/view/iterator_range.hpp | 13 + .../view/iterator_range/detail/at_impl.hpp | 46 + .../view/iterator_range/detail/begin_impl.hpp | 42 + .../view/iterator_range/detail/end_impl.hpp | 42 + .../detail/is_segmented_impl.hpp | 67 + .../detail/segmented_iterator_range.hpp | 556 +++ .../iterator_range/detail/segments_impl.hpp | 54 + .../view/iterator_range/detail/size_impl.hpp | 38 + .../iterator_range/detail/value_at_impl.hpp | 39 + .../view/iterator_range/iterator_range.hpp | 63 + .../include/boost/fusion/view/joint_view.hpp | 14 + .../view/joint_view/detail/begin_impl.hpp | 71 + .../joint_view/detail/deref_data_impl.hpp | 39 + .../view/joint_view/detail/deref_impl.hpp | 30 + .../view/joint_view/detail/end_impl.hpp | 42 + .../view/joint_view/detail/key_of_impl.hpp | 29 + .../view/joint_view/detail/next_impl.hpp | 75 + .../joint_view/detail/value_of_data_impl.hpp | 29 + .../view/joint_view/detail/value_of_impl.hpp | 30 + .../fusion/view/joint_view/joint_view.hpp | 83 + .../fusion/view/joint_view/joint_view_fwd.hpp | 18 + .../view/joint_view/joint_view_iterator.hpp | 70 + .../boost/include/boost/fusion/view/nview.hpp | 16 + .../fusion/view/nview/detail/advance_impl.hpp | 50 + .../fusion/view/nview/detail/at_impl.hpp | 48 + .../fusion/view/nview/detail/begin_impl.hpp | 49 + .../view/nview/detail/cpp03/nview_impl.hpp | 81 + .../fusion/view/nview/detail/deref_impl.hpp | 50 + .../view/nview/detail/distance_impl.hpp | 46 + .../fusion/view/nview/detail/end_impl.hpp | 51 + .../view/nview/detail/equal_to_impl.hpp | 34 + .../fusion/view/nview/detail/next_impl.hpp | 50 + .../fusion/view/nview/detail/nview_impl.hpp | 50 + .../fusion/view/nview/detail/prior_impl.hpp | 50 + .../fusion/view/nview/detail/size_impl.hpp | 39 + .../view/nview/detail/value_at_impl.hpp | 40 + .../view/nview/detail/value_of_impl.hpp | 45 + .../include/boost/fusion/view/nview/nview.hpp | 122 + .../fusion/view/nview/nview_iterator.hpp | 68 + .../boost/fusion/view/repetitive_view.hpp | 16 + .../repetitive_view/detail/begin_impl.hpp | 51 + .../repetitive_view/detail/deref_impl.hpp | 46 + .../view/repetitive_view/detail/end_impl.hpp | 51 + .../view/repetitive_view/detail/next_impl.hpp | 94 + .../repetitive_view/detail/value_of_impl.hpp | 35 + .../view/repetitive_view/repetitive_view.hpp | 54 + .../repetitive_view/repetitive_view_fwd.hpp | 19 + .../repetitive_view_iterator.hpp | 66 + .../boost/fusion/view/reverse_view.hpp | 14 + .../view/reverse_view/detail/advance_impl.hpp | 49 + .../view/reverse_view/detail/at_impl.hpp | 43 + .../view/reverse_view/detail/begin_impl.hpp | 43 + .../reverse_view/detail/deref_data_impl.hpp | 39 + .../view/reverse_view/detail/deref_impl.hpp | 50 + .../reverse_view/detail/distance_impl.hpp | 47 + .../view/reverse_view/detail/end_impl.hpp | 43 + .../view/reverse_view/detail/key_of_impl.hpp | 29 + .../view/reverse_view/detail/next_impl.hpp | 49 + .../view/reverse_view/detail/prior_impl.hpp | 49 + .../reverse_view/detail/value_at_impl.hpp | 34 + .../detail/value_of_data_impl.hpp | 29 + .../reverse_view/detail/value_of_impl.hpp | 43 + .../fusion/view/reverse_view/reverse_view.hpp | 72 + .../reverse_view/reverse_view_iterator.hpp | 67 + .../include/boost/fusion/view/single_view.hpp | 14 + .../view/single_view/detail/advance_impl.hpp | 49 + .../view/single_view/detail/at_impl.hpp | 46 + .../view/single_view/detail/begin_impl.hpp | 47 + .../view/single_view/detail/deref_impl.hpp | 47 + .../view/single_view/detail/distance_impl.hpp | 45 + .../view/single_view/detail/end_impl.hpp | 47 + .../view/single_view/detail/equal_to_impl.hpp | 40 + .../view/single_view/detail/next_impl.hpp | 55 + .../view/single_view/detail/prior_impl.hpp | 48 + .../view/single_view/detail/size_impl.hpp | 33 + .../view/single_view/detail/value_at_impl.hpp | 40 + .../view/single_view/detail/value_of_impl.hpp | 40 + .../fusion/view/single_view/single_view.hpp | 72 + .../view/single_view/single_view_iterator.hpp | 69 + .../boost/fusion/view/transform_view.hpp | 14 + .../transform_view/detail/advance_impl.hpp | 78 + .../detail/apply_transform_result.hpp | 38 + .../view/transform_view/detail/at_impl.hpp | 66 + .../view/transform_view/detail/begin_impl.hpp | 71 + .../view/transform_view/detail/deref_impl.hpp | 79 + .../transform_view/detail/distance_impl.hpp | 62 + .../view/transform_view/detail/end_impl.hpp | 71 + .../transform_view/detail/equal_to_impl.hpp | 43 + .../view/transform_view/detail/next_impl.hpp | 77 + .../view/transform_view/detail/prior_impl.hpp | 76 + .../transform_view/detail/value_at_impl.hpp | 54 + .../transform_view/detail/value_of_impl.hpp | 64 + .../view/transform_view/transform_view.hpp | 124 + .../transform_view/transform_view_fwd.hpp | 22 + .../transform_view_iterator.hpp | 92 + .../include/boost/fusion/view/zip_view.hpp | 15 + .../view/zip_view/detail/advance_impl.hpp | 72 + .../fusion/view/zip_view/detail/at_impl.hpp | 97 + .../view/zip_view/detail/begin_impl.hpp | 97 + .../view/zip_view/detail/deref_impl.hpp | 87 + .../view/zip_view/detail/distance_impl.hpp | 84 + .../fusion/view/zip_view/detail/end_impl.hpp | 108 + .../view/zip_view/detail/equal_to_impl.hpp | 63 + .../fusion/view/zip_view/detail/next_impl.hpp | 87 + .../view/zip_view/detail/prior_impl.hpp | 87 + .../fusion/view/zip_view/detail/size_impl.hpp | 35 + .../view/zip_view/detail/value_at_impl.hpp | 71 + .../view/zip_view/detail/value_of_impl.hpp | 71 + .../boost/fusion/view/zip_view/zip_view.hpp | 135 + .../view/zip_view/zip_view_iterator.hpp | 58 + .../view/zip_view/zip_view_iterator_fwd.hpp | 23 + libraries/boost/include/boost/hana.hpp | 209 + .../boost/include/boost/hana/accessors.hpp | 56 + .../boost/include/boost/hana/adapt_adt.hpp | 17 + .../boost/include/boost/hana/adapt_struct.hpp | 17 + libraries/boost/include/boost/hana/adjust.hpp | 55 + .../boost/include/boost/hana/adjust_if.hpp | 78 + libraries/boost/include/boost/hana/all.hpp | 48 + libraries/boost/include/boost/hana/all_of.hpp | 51 + libraries/boost/include/boost/hana/and.hpp | 58 + libraries/boost/include/boost/hana/any.hpp | 48 + libraries/boost/include/boost/hana/any_of.hpp | 192 + libraries/boost/include/boost/hana/ap.hpp | 78 + libraries/boost/include/boost/hana/append.hpp | 74 + libraries/boost/include/boost/hana/assert.hpp | 327 ++ libraries/boost/include/boost/hana/at.hpp | 57 + libraries/boost/include/boost/hana/at_key.hpp | 97 + libraries/boost/include/boost/hana/back.hpp | 53 + .../boost/include/boost/hana/basic_tuple.hpp | 256 ++ libraries/boost/include/boost/hana/bool.hpp | 271 ++ .../include/boost/hana/cartesian_product.hpp | 113 + libraries/boost/include/boost/hana/chain.hpp | 50 + .../boost/include/boost/hana/comparing.hpp | 44 + libraries/boost/include/boost/hana/concat.hpp | 80 + .../boost/include/boost/hana/concept.hpp | 36 + .../boost/hana/concept/applicative.hpp | 33 + .../include/boost/hana/concept/comonad.hpp | 35 + .../include/boost/hana/concept/comparable.hpp | 32 + .../include/boost/hana/concept/constant.hpp | 31 + .../boost/hana/concept/euclidean_ring.hpp | 35 + .../include/boost/hana/concept/foldable.hpp | 33 + .../include/boost/hana/concept/functor.hpp | 33 + .../include/boost/hana/concept/group.hpp | 34 + .../include/boost/hana/concept/hashable.hpp | 32 + .../boost/hana/concept/integral_constant.hpp | 43 + .../include/boost/hana/concept/iterable.hpp | 35 + .../include/boost/hana/concept/logical.hpp | 35 + .../boost/hana/concept/metafunction.hpp | 41 + .../include/boost/hana/concept/monad.hpp | 33 + .../include/boost/hana/concept/monad_plus.hpp | 33 + .../include/boost/hana/concept/monoid.hpp | 34 + .../include/boost/hana/concept/orderable.hpp | 32 + .../include/boost/hana/concept/product.hpp | 33 + .../boost/include/boost/hana/concept/ring.hpp | 34 + .../include/boost/hana/concept/searchable.hpp | 33 + .../include/boost/hana/concept/sequence.hpp | 44 + .../include/boost/hana/concept/struct.hpp | 31 + libraries/boost/include/boost/hana/config.hpp | 219 + .../boost/include/boost/hana/contains.hpp | 51 + libraries/boost/include/boost/hana/core.hpp | 22 + .../boost/include/boost/hana/core/common.hpp | 109 + .../boost/include/boost/hana/core/default.hpp | 32 + .../include/boost/hana/core/dispatch.hpp | 18 + .../boost/include/boost/hana/core/is_a.hpp | 41 + .../boost/include/boost/hana/core/make.hpp | 45 + .../boost/include/boost/hana/core/tag_of.hpp | 49 + .../boost/include/boost/hana/core/to.hpp | 196 + .../boost/include/boost/hana/core/when.hpp | 15 + libraries/boost/include/boost/hana/count.hpp | 50 + .../boost/include/boost/hana/count_if.hpp | 92 + libraries/boost/include/boost/hana/cycle.hpp | 127 + .../include/boost/hana/define_struct.hpp | 17 + .../include/boost/hana/detail/algorithm.hpp | 186 + .../include/boost/hana/detail/any_of.hpp | 46 + .../boost/include/boost/hana/detail/array.hpp | 105 + .../boost/hana/detail/canonical_constant.hpp | 80 + .../include/boost/hana/detail/concepts.hpp | 78 + .../include/boost/hana/detail/create.hpp | 33 + .../boost/include/boost/hana/detail/decay.hpp | 48 + .../include/boost/hana/detail/dispatch_if.hpp | 56 + .../boost/include/boost/hana/detail/ebo.hpp | 115 + .../include/boost/hana/detail/fast_and.hpp | 25 + .../hana/detail/first_unsatisfied_index.hpp | 56 + .../hana/detail/has_common_embedding.hpp | 69 + .../boost/hana/detail/has_duplicates.hpp | 65 + .../include/boost/hana/detail/hash_table.hpp | 145 + .../include/boost/hana/detail/index_if.hpp | 55 + .../boost/hana/detail/integral_constant.hpp | 245 ++ .../include/boost/hana/detail/intrinsics.hpp | 67 + .../include/boost/hana/detail/nested_by.hpp | 40 + .../boost/hana/detail/nested_by_fwd.hpp | 55 + .../include/boost/hana/detail/nested_than.hpp | 29 + .../boost/hana/detail/nested_than_fwd.hpp | 47 + .../include/boost/hana/detail/nested_to.hpp | 28 + .../boost/hana/detail/nested_to_fwd.hpp | 47 + .../boost/hana/detail/operators/adl.hpp | 34 + .../hana/detail/operators/arithmetic.hpp | 78 + .../hana/detail/operators/comparable.hpp | 44 + .../boost/hana/detail/operators/iterable.hpp | 40 + .../boost/hana/detail/operators/logical.hpp | 51 + .../boost/hana/detail/operators/monad.hpp | 35 + .../boost/hana/detail/operators/orderable.hpp | 60 + .../hana/detail/operators/searchable.hpp | 40 + .../boost/hana/detail/preprocessor.hpp | 34 + .../boost/hana/detail/std_common_type.hpp | 36 + .../boost/hana/detail/struct_macros.hpp | 2768 +++++++++++++ .../boost/hana/detail/struct_macros.hpp.erb | 231 ++ .../include/boost/hana/detail/type_at.hpp | 57 + .../include/boost/hana/detail/type_foldl1.hpp | 145 + .../include/boost/hana/detail/type_foldr1.hpp | 149 + .../boost/hana/detail/unpack_flatten.hpp | 70 + .../include/boost/hana/detail/variadic/at.hpp | 40 + .../boost/hana/detail/variadic/drop_into.hpp | 47 + .../boost/hana/detail/variadic/foldl1.hpp | 214 + .../boost/hana/detail/variadic/foldr1.hpp | 210 + .../hana/detail/variadic/reverse_apply.hpp | 27 + .../detail/variadic/reverse_apply/flat.hpp | 41 + .../variadic/reverse_apply/unrolled.hpp | 87 + .../boost/hana/detail/variadic/split_at.hpp | 153 + .../boost/hana/detail/variadic/take.hpp | 51 + .../include/boost/hana/detail/void_t.hpp | 21 + .../boost/include/boost/hana/detail/wrong.hpp | 33 + .../boost/include/boost/hana/difference.hpp | 40 + libraries/boost/include/boost/hana/div.hpp | 107 + .../boost/include/boost/hana/drop_back.hpp | 75 + .../boost/include/boost/hana/drop_front.hpp | 57 + .../include/boost/hana/drop_front_exactly.hpp | 85 + .../boost/include/boost/hana/drop_while.hpp | 93 + .../boost/include/boost/hana/duplicate.hpp | 48 + libraries/boost/include/boost/hana/empty.hpp | 53 + libraries/boost/include/boost/hana/equal.hpp | 203 + .../boost/include/boost/hana/erase_key.hpp | 37 + libraries/boost/include/boost/hana/eval.hpp | 57 + .../boost/include/boost/hana/eval_if.hpp | 93 + .../boost/hana/experimental/printable.hpp | 257 ++ .../boost/hana/experimental/type_name.hpp | 64 + .../include/boost/hana/experimental/types.hpp | 158 + .../include/boost/hana/experimental/view.hpp | 515 +++ .../boost/include/boost/hana/ext/boost.hpp | 21 + .../include/boost/hana/ext/boost/fusion.hpp | 22 + .../boost/hana/ext/boost/fusion/deque.hpp | 108 + .../hana/ext/boost/fusion/detail/common.hpp | 79 + .../boost/hana/ext/boost/fusion/list.hpp | 111 + .../boost/hana/ext/boost/fusion/tuple.hpp | 49 + .../boost/hana/ext/boost/fusion/vector.hpp | 110 + .../include/boost/hana/ext/boost/mpl.hpp | 21 + .../boost/hana/ext/boost/mpl/integral_c.hpp | 81 + .../include/boost/hana/ext/boost/mpl/list.hpp | 186 + .../boost/hana/ext/boost/mpl/vector.hpp | 185 + .../include/boost/hana/ext/boost/tuple.hpp | 138 + .../boost/include/boost/hana/ext/std.hpp | 25 + .../include/boost/hana/ext/std/array.hpp | 171 + .../boost/hana/ext/std/integer_sequence.hpp | 140 + .../boost/hana/ext/std/integral_constant.hpp | 96 + .../boost/include/boost/hana/ext/std/pair.hpp | 91 + .../include/boost/hana/ext/std/ratio.hpp | 164 + .../include/boost/hana/ext/std/tuple.hpp | 184 + .../include/boost/hana/ext/std/vector.hpp | 110 + libraries/boost/include/boost/hana/extend.hpp | 50 + .../boost/include/boost/hana/extract.hpp | 45 + libraries/boost/include/boost/hana/fill.hpp | 74 + libraries/boost/include/boost/hana/filter.hpp | 135 + libraries/boost/include/boost/hana/find.hpp | 61 + .../boost/include/boost/hana/find_if.hpp | 129 + libraries/boost/include/boost/hana/first.hpp | 45 + .../boost/include/boost/hana/flatten.hpp | 62 + libraries/boost/include/boost/hana/fold.hpp | 17 + .../boost/include/boost/hana/fold_left.hpp | 97 + .../boost/include/boost/hana/fold_right.hpp | 97 + .../boost/include/boost/hana/for_each.hpp | 62 + libraries/boost/include/boost/hana/front.hpp | 47 + .../boost/include/boost/hana/functional.hpp | 33 + .../include/boost/hana/functional/always.hpp | 64 + .../include/boost/hana/functional/apply.hpp | 85 + .../include/boost/hana/functional/arg.hpp | 141 + .../include/boost/hana/functional/capture.hpp | 112 + .../include/boost/hana/functional/compose.hpp | 108 + .../include/boost/hana/functional/curry.hpp | 170 + .../include/boost/hana/functional/demux.hpp | 269 ++ .../include/boost/hana/functional/fix.hpp | 83 + .../include/boost/hana/functional/flip.hpp | 73 + .../include/boost/hana/functional/id.hpp | 38 + .../include/boost/hana/functional/infix.hpp | 185 + .../include/boost/hana/functional/iterate.hpp | 201 + .../boost/hana/functional/lockstep.hpp | 114 + .../include/boost/hana/functional/on.hpp | 83 + .../boost/hana/functional/overload.hpp | 88 + .../hana/functional/overload_linearly.hpp | 110 + .../include/boost/hana/functional/partial.hpp | 105 + .../boost/hana/functional/placeholder.hpp | 263 ++ .../boost/hana/functional/reverse_partial.hpp | 103 + libraries/boost/include/boost/hana/fuse.hpp | 47 + .../include/boost/hana/fwd/accessors.hpp | 50 + .../include/boost/hana/fwd/adapt_adt.hpp | 48 + .../include/boost/hana/fwd/adapt_struct.hpp | 48 + .../boost/include/boost/hana/fwd/adjust.hpp | 64 + .../include/boost/hana/fwd/adjust_if.hpp | 69 + .../boost/include/boost/hana/fwd/all.hpp | 46 + .../boost/include/boost/hana/fwd/all_of.hpp | 54 + .../boost/include/boost/hana/fwd/and.hpp | 53 + .../boost/include/boost/hana/fwd/any.hpp | 46 + .../boost/include/boost/hana/fwd/any_of.hpp | 53 + libraries/boost/include/boost/hana/fwd/ap.hpp | 82 + .../boost/include/boost/hana/fwd/append.hpp | 68 + libraries/boost/include/boost/hana/fwd/at.hpp | 89 + .../boost/include/boost/hana/fwd/at_key.hpp | 67 + .../boost/include/boost/hana/fwd/back.hpp | 48 + .../include/boost/hana/fwd/basic_tuple.hpp | 65 + .../boost/include/boost/hana/fwd/bool.hpp | 15 + .../boost/hana/fwd/cartesian_product.hpp | 62 + .../boost/include/boost/hana/fwd/chain.hpp | 67 + .../include/boost/hana/fwd/comparing.hpp | 65 + .../boost/include/boost/hana/fwd/concat.hpp | 63 + .../boost/hana/fwd/concept/applicative.hpp | 117 + .../boost/hana/fwd/concept/comonad.hpp | 111 + .../boost/hana/fwd/concept/comparable.hpp | 160 + .../boost/hana/fwd/concept/constant.hpp | 210 + .../boost/hana/fwd/concept/euclidean_ring.hpp | 117 + .../boost/hana/fwd/concept/foldable.hpp | 141 + .../boost/hana/fwd/concept/functor.hpp | 139 + .../include/boost/hana/fwd/concept/group.hpp | 111 + .../boost/hana/fwd/concept/hashable.hpp | 68 + .../hana/fwd/concept/integral_constant.hpp | 73 + .../boost/hana/fwd/concept/iterable.hpp | 149 + .../boost/hana/fwd/concept/logical.hpp | 166 + .../boost/hana/fwd/concept/metafunction.hpp | 99 + .../include/boost/hana/fwd/concept/monad.hpp | 198 + .../boost/hana/fwd/concept/monad_plus.hpp | 89 + .../include/boost/hana/fwd/concept/monoid.hpp | 101 + .../boost/hana/fwd/concept/orderable.hpp | 187 + .../boost/hana/fwd/concept/product.hpp | 103 + .../include/boost/hana/fwd/concept/ring.hpp | 106 + .../boost/hana/fwd/concept/searchable.hpp | 143 + .../boost/hana/fwd/concept/sequence.hpp | 165 + .../include/boost/hana/fwd/concept/struct.hpp | 156 + .../boost/include/boost/hana/fwd/contains.hpp | 73 + .../boost/include/boost/hana/fwd/core.hpp | 21 + .../include/boost/hana/fwd/core/common.hpp | 103 + .../include/boost/hana/fwd/core/default.hpp | 56 + .../include/boost/hana/fwd/core/is_a.hpp | 61 + .../include/boost/hana/fwd/core/make.hpp | 70 + .../include/boost/hana/fwd/core/tag_of.hpp | 120 + .../boost/include/boost/hana/fwd/core/to.hpp | 174 + .../include/boost/hana/fwd/core/when.hpp | 74 + .../boost/include/boost/hana/fwd/count.hpp | 57 + .../boost/include/boost/hana/fwd/count_if.hpp | 56 + .../boost/include/boost/hana/fwd/cycle.hpp | 76 + .../include/boost/hana/fwd/define_struct.hpp | 48 + .../include/boost/hana/fwd/difference.hpp | 32 + .../boost/include/boost/hana/fwd/div.hpp | 59 + .../include/boost/hana/fwd/drop_back.hpp | 63 + .../include/boost/hana/fwd/drop_front.hpp | 66 + .../boost/hana/fwd/drop_front_exactly.hpp | 67 + .../include/boost/hana/fwd/drop_while.hpp | 60 + .../include/boost/hana/fwd/duplicate.hpp | 57 + .../boost/include/boost/hana/fwd/empty.hpp | 51 + .../boost/include/boost/hana/fwd/equal.hpp | 80 + .../include/boost/hana/fwd/erase_key.hpp | 32 + .../boost/include/boost/hana/fwd/eval.hpp | 58 + .../boost/include/boost/hana/fwd/eval_if.hpp | 155 + .../boost/include/boost/hana/fwd/extend.hpp | 62 + .../boost/include/boost/hana/fwd/extract.hpp | 58 + .../boost/include/boost/hana/fwd/fill.hpp | 57 + .../boost/include/boost/hana/fwd/filter.hpp | 81 + .../boost/include/boost/hana/fwd/find.hpp | 60 + .../boost/include/boost/hana/fwd/find_if.hpp | 57 + .../boost/include/boost/hana/fwd/first.hpp | 49 + .../boost/include/boost/hana/fwd/flatten.hpp | 63 + .../boost/include/boost/hana/fwd/fold.hpp | 38 + .../include/boost/hana/fwd/fold_left.hpp | 88 + .../include/boost/hana/fwd/fold_right.hpp | 92 + .../boost/include/boost/hana/fwd/for_each.hpp | 55 + .../boost/include/boost/hana/fwd/front.hpp | 48 + .../boost/include/boost/hana/fwd/fuse.hpp | 55 + .../boost/include/boost/hana/fwd/greater.hpp | 53 + .../include/boost/hana/fwd/greater_equal.hpp | 54 + .../boost/include/boost/hana/fwd/group.hpp | 103 + .../boost/include/boost/hana/fwd/hash.hpp | 68 + libraries/boost/include/boost/hana/fwd/if.hpp | 57 + .../boost/include/boost/hana/fwd/index_if.hpp | 60 + .../boost/include/boost/hana/fwd/insert.hpp | 60 + .../include/boost/hana/fwd/insert_range.hpp | 57 + .../boost/hana/fwd/integral_constant.hpp | 175 + .../include/boost/hana/fwd/intersection.hpp | 32 + .../include/boost/hana/fwd/intersperse.hpp | 57 + .../include/boost/hana/fwd/is_disjoint.hpp | 50 + .../boost/include/boost/hana/fwd/is_empty.hpp | 49 + .../include/boost/hana/fwd/is_subset.hpp | 79 + .../boost/include/boost/hana/fwd/keys.hpp | 50 + .../boost/include/boost/hana/fwd/lazy.hpp | 124 + .../boost/include/boost/hana/fwd/length.hpp | 50 + .../boost/include/boost/hana/fwd/less.hpp | 53 + .../include/boost/hana/fwd/less_equal.hpp | 54 + .../hana/fwd/lexicographical_compare.hpp | 93 + .../boost/include/boost/hana/fwd/lift.hpp | 59 + .../boost/include/boost/hana/fwd/map.hpp | 380 ++ .../boost/include/boost/hana/fwd/max.hpp | 44 + .../boost/include/boost/hana/fwd/maximum.hpp | 116 + .../boost/include/boost/hana/fwd/members.hpp | 46 + .../boost/include/boost/hana/fwd/min.hpp | 51 + .../boost/include/boost/hana/fwd/minimum.hpp | 116 + .../boost/include/boost/hana/fwd/minus.hpp | 67 + .../boost/include/boost/hana/fwd/mod.hpp | 62 + .../boost/hana/fwd/monadic_compose.hpp | 75 + .../boost/hana/fwd/monadic_fold_left.hpp | 104 + .../boost/hana/fwd/monadic_fold_right.hpp | 106 + .../boost/include/boost/hana/fwd/mult.hpp | 63 + .../boost/include/boost/hana/fwd/negate.hpp | 42 + .../boost/include/boost/hana/fwd/none.hpp | 46 + .../boost/include/boost/hana/fwd/none_of.hpp | 55 + .../boost/include/boost/hana/fwd/not.hpp | 47 + .../include/boost/hana/fwd/not_equal.hpp | 70 + .../boost/include/boost/hana/fwd/one.hpp | 45 + .../boost/include/boost/hana/fwd/optional.hpp | 510 +++ libraries/boost/include/boost/hana/fwd/or.hpp | 53 + .../boost/include/boost/hana/fwd/ordering.hpp | 65 + .../boost/include/boost/hana/fwd/pair.hpp | 153 + .../include/boost/hana/fwd/partition.hpp | 81 + .../include/boost/hana/fwd/permutations.hpp | 50 + .../boost/include/boost/hana/fwd/plus.hpp | 63 + .../boost/include/boost/hana/fwd/power.hpp | 56 + .../boost/include/boost/hana/fwd/prefix.hpp | 72 + .../boost/include/boost/hana/fwd/prepend.hpp | 73 + .../boost/include/boost/hana/fwd/product.hpp | 70 + .../boost/include/boost/hana/fwd/range.hpp | 149 + .../boost/include/boost/hana/fwd/remove.hpp | 70 + .../include/boost/hana/fwd/remove_at.hpp | 82 + .../include/boost/hana/fwd/remove_if.hpp | 69 + .../include/boost/hana/fwd/remove_range.hpp | 85 + .../boost/include/boost/hana/fwd/repeat.hpp | 58 + .../boost/include/boost/hana/fwd/replace.hpp | 64 + .../include/boost/hana/fwd/replace_if.hpp | 63 + .../include/boost/hana/fwd/replicate.hpp | 75 + .../boost/include/boost/hana/fwd/reverse.hpp | 49 + .../include/boost/hana/fwd/reverse_fold.hpp | 84 + .../include/boost/hana/fwd/scan_left.hpp | 105 + .../include/boost/hana/fwd/scan_right.hpp | 105 + .../boost/include/boost/hana/fwd/second.hpp | 48 + .../boost/include/boost/hana/fwd/set.hpp | 297 ++ .../boost/include/boost/hana/fwd/size.hpp | 33 + .../boost/include/boost/hana/fwd/slice.hpp | 105 + .../boost/include/boost/hana/fwd/sort.hpp | 103 + .../boost/include/boost/hana/fwd/span.hpp | 85 + .../boost/include/boost/hana/fwd/string.hpp | 271 ++ .../boost/include/boost/hana/fwd/suffix.hpp | 72 + .../boost/include/boost/hana/fwd/sum.hpp | 79 + .../boost/hana/fwd/symmetric_difference.hpp | 32 + .../include/boost/hana/fwd/take_back.hpp | 78 + .../include/boost/hana/fwd/take_front.hpp | 78 + .../include/boost/hana/fwd/take_while.hpp | 56 + .../boost/include/boost/hana/fwd/tap.hpp | 65 + .../boost/include/boost/hana/fwd/then.hpp | 52 + .../include/boost/hana/fwd/transform.hpp | 57 + .../boost/include/boost/hana/fwd/tuple.hpp | 224 + .../boost/include/boost/hana/fwd/type.hpp | 535 +++ .../include/boost/hana/fwd/unfold_left.hpp | 85 + .../include/boost/hana/fwd/unfold_right.hpp | 85 + .../boost/include/boost/hana/fwd/union.hpp | 32 + .../boost/include/boost/hana/fwd/unique.hpp | 91 + .../boost/include/boost/hana/fwd/unpack.hpp | 95 + .../boost/include/boost/hana/fwd/value.hpp | 100 + .../boost/include/boost/hana/fwd/while.hpp | 71 + .../boost/include/boost/hana/fwd/zero.hpp | 45 + .../boost/include/boost/hana/fwd/zip.hpp | 61 + .../include/boost/hana/fwd/zip_shortest.hpp | 61 + .../boost/hana/fwd/zip_shortest_with.hpp | 62 + .../boost/include/boost/hana/fwd/zip_with.hpp | 62 + .../boost/include/boost/hana/greater.hpp | 71 + .../include/boost/hana/greater_equal.hpp | 74 + libraries/boost/include/boost/hana/group.hpp | 158 + libraries/boost/include/boost/hana/hash.hpp | 114 + libraries/boost/include/boost/hana/if.hpp | 61 + .../boost/include/boost/hana/index_if.hpp | 105 + libraries/boost/include/boost/hana/insert.hpp | 52 + .../boost/include/boost/hana/insert_range.hpp | 64 + .../include/boost/hana/integral_constant.hpp | 15 + .../boost/include/boost/hana/intersection.hpp | 39 + .../boost/include/boost/hana/intersperse.hpp | 76 + .../boost/include/boost/hana/is_disjoint.hpp | 65 + .../boost/include/boost/hana/is_empty.hpp | 45 + .../boost/include/boost/hana/is_subset.hpp | 84 + libraries/boost/include/boost/hana/keys.hpp | 48 + libraries/boost/include/boost/hana/lazy.hpp | 229 + libraries/boost/include/boost/hana/length.hpp | 57 + libraries/boost/include/boost/hana/less.hpp | 142 + .../boost/include/boost/hana/less_equal.hpp | 75 + .../boost/hana/lexicographical_compare.hpp | 110 + libraries/boost/include/boost/hana/lift.hpp | 54 + libraries/boost/include/boost/hana/map.hpp | 577 +++ libraries/boost/include/boost/hana/max.hpp | 58 + .../boost/include/boost/hana/maximum.hpp | 97 + .../boost/include/boost/hana/members.hpp | 65 + libraries/boost/include/boost/hana/min.hpp | 58 + .../boost/include/boost/hana/minimum.hpp | 97 + libraries/boost/include/boost/hana/minus.hpp | 114 + libraries/boost/include/boost/hana/mod.hpp | 107 + .../include/boost/hana/monadic_compose.hpp | 51 + .../include/boost/hana/monadic_fold_left.hpp | 132 + .../include/boost/hana/monadic_fold_right.hpp | 131 + libraries/boost/include/boost/hana/mult.hpp | 107 + libraries/boost/include/boost/hana/negate.hpp | 61 + libraries/boost/include/boost/hana/none.hpp | 48 + .../boost/include/boost/hana/none_of.hpp | 50 + libraries/boost/include/boost/hana/not.hpp | 75 + .../boost/include/boost/hana/not_equal.hpp | 59 + libraries/boost/include/boost/hana/one.hpp | 79 + .../boost/include/boost/hana/optional.hpp | 417 ++ libraries/boost/include/boost/hana/or.hpp | 61 + .../boost/include/boost/hana/ordering.hpp | 44 + libraries/boost/include/boost/hana/pair.hpp | 207 + .../boost/include/boost/hana/partition.hpp | 116 + .../boost/include/boost/hana/permutations.hpp | 78 + libraries/boost/include/boost/hana/plus.hpp | 109 + libraries/boost/include/boost/hana/power.hpp | 65 + libraries/boost/include/boost/hana/prefix.hpp | 52 + .../boost/include/boost/hana/prepend.hpp | 74 + .../boost/include/boost/hana/product.hpp | 58 + libraries/boost/include/boost/hana/range.hpp | 294 ++ libraries/boost/include/boost/hana/remove.hpp | 54 + .../boost/include/boost/hana/remove_at.hpp | 86 + .../boost/include/boost/hana/remove_if.hpp | 52 + .../boost/include/boost/hana/remove_range.hpp | 100 + libraries/boost/include/boost/hana/repeat.hpp | 58 + .../boost/include/boost/hana/replace.hpp | 56 + .../boost/include/boost/hana/replace_if.hpp | 54 + .../boost/include/boost/hana/replicate.hpp | 74 + .../boost/include/boost/hana/reverse.hpp | 61 + .../boost/include/boost/hana/reverse_fold.hpp | 37 + .../boost/include/boost/hana/scan_left.hpp | 133 + .../boost/include/boost/hana/scan_right.hpp | 130 + libraries/boost/include/boost/hana/second.hpp | 45 + libraries/boost/include/boost/hana/set.hpp | 323 ++ libraries/boost/include/boost/hana/size.hpp | 17 + libraries/boost/include/boost/hana/slice.hpp | 99 + libraries/boost/include/boost/hana/sort.hpp | 173 + libraries/boost/include/boost/hana/span.hpp | 75 + libraries/boost/include/boost/hana/string.hpp | 349 ++ libraries/boost/include/boost/hana/suffix.hpp | 52 + libraries/boost/include/boost/hana/sum.hpp | 58 + .../boost/hana/symmetric_difference.hpp | 46 + .../boost/include/boost/hana/take_back.hpp | 76 + .../boost/include/boost/hana/take_front.hpp | 75 + .../boost/include/boost/hana/take_while.hpp | 55 + libraries/boost/include/boost/hana/tap.hpp | 59 + libraries/boost/include/boost/hana/then.hpp | 55 + libraries/boost/include/boost/hana/traits.hpp | 213 + .../boost/include/boost/hana/transform.hpp | 76 + libraries/boost/include/boost/hana/tuple.hpp | 312 ++ libraries/boost/include/boost/hana/type.hpp | 245 ++ .../boost/include/boost/hana/unfold_left.hpp | 71 + .../boost/include/boost/hana/unfold_right.hpp | 71 + libraries/boost/include/boost/hana/union.hpp | 39 + libraries/boost/include/boost/hana/unique.hpp | 75 + libraries/boost/include/boost/hana/unpack.hpp | 141 + libraries/boost/include/boost/hana/value.hpp | 56 + .../boost/include/boost/hana/version.hpp | 53 + libraries/boost/include/boost/hana/while.hpp | 117 + libraries/boost/include/boost/hana/zero.hpp | 81 + libraries/boost/include/boost/hana/zip.hpp | 50 + .../boost/include/boost/hana/zip_shortest.hpp | 51 + .../include/boost/hana/zip_shortest_with.hpp | 64 + .../boost/include/boost/hana/zip_with.hpp | 70 + .../include/boost/intrusive/any_hook.hpp | 338 ++ .../boost/include/boost/intrusive/avl_set.hpp | 1073 +++++ .../include/boost/intrusive/avl_set_hook.hpp | 293 ++ .../boost/include/boost/intrusive/avltree.hpp | 588 +++ .../boost/intrusive/avltree_algorithms.hpp | 727 ++++ .../boost/include/boost/intrusive/bs_set.hpp | 1069 +++++ .../include/boost/intrusive/bs_set_hook.hpp | 288 ++ .../boost/include/boost/intrusive/bstree.hpp | 2246 ++++++++++ .../boost/intrusive/bstree_algorithms.hpp | 2097 ++++++++++ .../intrusive/circular_list_algorithms.hpp | 468 +++ .../intrusive/circular_slist_algorithms.hpp | 406 ++ .../intrusive/derivation_value_traits.hpp | 77 + .../boost/intrusive/detail/algo_type.hpp | 53 + .../boost/intrusive/detail/algorithm.hpp | 90 + .../boost/intrusive/detail/algorithm.hpp52078 | 1 + .../detail/any_node_and_algorithms.hpp | 297 ++ .../intrusive/detail/array_initializer.hpp | 95 + .../include/boost/intrusive/detail/assert.hpp | 45 + .../boost/intrusive/detail/avltree_node.hpp | 193 + .../detail/bstree_algorithms_base.hpp | 184 + .../detail/common_slist_algorithms.hpp | 198 + .../boost/intrusive/detail/config_begin.hpp | 43 + .../boost/intrusive/detail/config_end.hpp | 15 + .../detail/default_header_holder.hpp | 70 + .../intrusive/detail/ebo_functor_holder.hpp | 292 ++ .../intrusive/detail/empty_node_checker.hpp | 44 + .../boost/intrusive/detail/equal_to_value.hpp | 50 + .../intrusive/detail/exception_disposer.hpp | 90 + .../intrusive/detail/function_detector.hpp | 92 + .../boost/intrusive/detail/generic_hook.hpp | 223 + .../intrusive/detail/get_value_traits.hpp | 222 + .../has_member_function_callable_with.hpp | 366 ++ ...has_member_function_callable_with.hpp15999 | 1 + .../boost/intrusive/detail/hashtable_node.hpp | 286 ++ .../boost/intrusive/detail/hook_traits.hpp | 187 + .../boost/intrusive/detail/iiterator.hpp | 122 + .../detail/is_stateful_value_traits.hpp | 81 + .../boost/intrusive/detail/iterator.hpp | 262 ++ .../boost/intrusive/detail/iterator.hpp51772 | 2 + .../intrusive/detail/key_nodeptr_comp.hpp | 125 + .../boost/intrusive/detail/list_iterator.hpp | 134 + .../boost/intrusive/detail/list_node.hpp | 72 + .../include/boost/intrusive/detail/math.hpp | 295 ++ .../detail/minimal_less_equal_header.hpp | 30 + .../intrusive/detail/minimal_pair_header.hpp | 30 + .../include/boost/intrusive/detail/mpl.hpp | 216 + .../boost/intrusive/detail/mpl.hpp15895 | 1 + .../intrusive/detail/node_cloner_disposer.hpp | 105 + .../boost/intrusive/detail/node_holder.hpp | 35 + .../boost/intrusive/detail/node_to_value.hpp | 130 + .../intrusive/detail/parent_from_member.hpp | 121 + .../boost/intrusive/detail/rbtree_node.hpp | 205 + .../intrusive/detail/reverse_iterator.hpp | 165 + .../detail/reverse_iterator.hpp51830 | 1 + .../intrusive/detail/simple_disposers.hpp | 50 + .../boost/intrusive/detail/size_holder.hpp | 91 + .../boost/intrusive/detail/slist_iterator.hpp | 125 + .../boost/intrusive/detail/slist_node.hpp | 64 + .../boost/intrusive/detail/std_fwd.hpp | 43 + .../intrusive/detail/transform_iterator.hpp | 172 + .../boost/intrusive/detail/tree_iterator.hpp | 172 + .../boost/intrusive/detail/tree_node.hpp | 80 + .../intrusive/detail/tree_value_compare.hpp | 167 + .../include/boost/intrusive/detail/uncast.hpp | 55 + .../boost/intrusive/detail/workaround.hpp | 53 + .../include/boost/intrusive/hashtable.hpp | 3668 +++++++++++++++++ .../include/boost/intrusive/intrusive_fwd.hpp | 763 ++++ .../intrusive/linear_slist_algorithms.hpp | 342 ++ .../include/boost/intrusive/link_mode.hpp | 63 + .../boost/include/boost/intrusive/list.hpp | 1516 +++++++ .../include/boost/intrusive/list_hook.hpp | 289 ++ .../boost/intrusive/member_value_traits.hpp | 85 + .../boost/include/boost/intrusive/options.hpp | 256 ++ .../include/boost/intrusive/pack_options.hpp | 374 ++ .../boost/intrusive/pack_options.hpp51740 | 1 + .../boost/intrusive/parent_from_member.hpp | 49 + .../boost/intrusive/pointer_plus_bits.hpp | 109 + .../boost/intrusive/pointer_rebind.hpp | 188 + .../boost/intrusive/pointer_rebind.hpp15904 | 1 + .../boost/intrusive/pointer_traits.hpp | 318 ++ .../boost/intrusive/pointer_traits.hpp15901 | 1 + .../boost/intrusive/priority_compare.hpp | 82 + .../boost/include/boost/intrusive/rbtree.hpp | 591 +++ .../boost/intrusive/rbtree_algorithms.hpp | 622 +++ .../boost/include/boost/intrusive/set.hpp | 1073 +++++ .../include/boost/intrusive/set_hook.hpp | 296 ++ .../boost/include/boost/intrusive/sg_set.hpp | 1094 +++++ .../boost/include/boost/intrusive/sgtree.hpp | 1081 +++++ .../boost/intrusive/sgtree_algorithms.hpp | 420 ++ .../boost/include/boost/intrusive/slist.hpp | 2254 ++++++++++ .../include/boost/intrusive/slist_hook.hpp | 296 ++ .../include/boost/intrusive/splay_set.hpp | 1110 +++++ .../include/boost/intrusive/splaytree.hpp | 666 +++ .../boost/intrusive/splaytree_algorithms.hpp | 754 ++++ .../boost/include/boost/intrusive/treap.hpp | 1344 ++++++ .../boost/intrusive/treap_algorithms.hpp | 699 ++++ .../include/boost/intrusive/treap_set.hpp | 1106 +++++ .../boost/intrusive/trivial_value_traits.hpp | 59 + .../include/boost/intrusive/unordered_set.hpp | 990 +++++ .../boost/intrusive/unordered_set_hook.hpp | 459 +++ .../include/boost/move/adl_move_swap.hpp | 272 ++ .../include/boost/move/adl_move_swap.hpp16395 | 3 + .../boost/move/algo/adaptive_merge.hpp | 320 ++ .../boost/move/algo/adaptive_merge.hpp52105 | 1 + .../include/boost/move/algo/adaptive_sort.hpp | 622 +++ .../boost/move/algo/adaptive_sort.hpp53427 | 1 + .../move/algo/detail/adaptive_sort_merge.hpp | 1690 ++++++++ .../algo/detail/adaptive_sort_merge.hpp52107 | 1 + .../boost/move/algo/detail/basic_op.hpp | 121 + .../boost/move/algo/detail/basic_op.hpp52120 | 1 + .../boost/move/algo/detail/heap_sort.hpp | 111 + .../boost/move/algo/detail/heap_sort.hpp52189 | 1 + .../boost/move/algo/detail/insertion_sort.hpp | 128 + .../move/algo/detail/insertion_sort.hpp52181 | 1 + .../boost/move/algo/detail/is_sorted.hpp | 55 + .../boost/move/algo/detail/is_sorted.hpp52191 | 1 + .../include/boost/move/algo/detail/merge.hpp | 553 +++ .../boost/move/algo/detail/merge.hpp52119 | 1 + .../boost/move/algo/detail/merge_sort.hpp | 139 + .../move/algo/detail/merge_sort.hpp52183 | 1 + .../boost/move/algo/detail/pdqsort.hpp | 334 ++ .../boost/move/algo/detail/pdqsort.hpp53532 | 1 + .../boost/move/algo/detail/set_difference.hpp | 207 + .../move/algo/detail/set_difference.hpp52368 | 1 + .../boost/include/boost/move/algo/move.hpp | 156 + .../include/boost/move/algo/move.hpp52112 | 1 + .../include/boost/move/algo/predicate.hpp | 86 + .../boost/move/algo/predicate.hpp52132 | 1 + .../boost/include/boost/move/algo/unique.hpp | 55 + .../include/boost/move/algo/unique.hpp52365 | 1 + .../boost/include/boost/move/algorithm.hpp | 167 + libraries/boost/include/boost/move/core.hpp | 494 +++ .../boost/include/boost/move/core.hpp15979 | 2 + .../include/boost/move/default_delete.hpp | 217 + .../boost/move/default_delete.hpp53042 | 1 + .../boost/move/detail/config_begin.hpp | 21 + .../include/boost/move/detail/config_end.hpp | 12 + .../include/boost/move/detail/destruct_n.hpp | 66 + .../boost/move/detail/destruct_n.hpp52131 | 1 + .../include/boost/move/detail/fwd_macros.hpp | 881 ++++ .../boost/move/detail/fwd_macros.hpp16000 | 1 + .../move/detail/iterator_to_raw_pointer.hpp | 59 + .../detail/iterator_to_raw_pointer.hpp51818 | 1 + .../boost/move/detail/iterator_traits.hpp | 77 + .../move/detail/iterator_traits.hpp51789 | 1 + .../include/boost/move/detail/meta_utils.hpp | 585 +++ .../boost/move/detail/meta_utils.hpp15725 | 1 + .../boost/move/detail/meta_utils_core.hpp | 132 + .../move/detail/meta_utils_core.hpp15727 | 1 + .../boost/move/detail/move_helpers.hpp | 256 ++ .../boost/move/detail/placement_new.hpp | 30 + .../boost/move/detail/placement_new.hpp52182 | 3 + .../boost/move/detail/pointer_element.hpp | 168 + .../move/detail/pointer_element.hpp15905 | 1 + .../boost/move/detail/reverse_iterator.hpp | 171 + .../move/detail/reverse_iterator.hpp52109 | 1 + .../boost/move/detail/std_ns_begin.hpp | 30 + .../include/boost/move/detail/std_ns_end.hpp | 14 + .../boost/move/detail/to_raw_pointer.hpp | 45 + .../boost/move/detail/to_raw_pointer.hpp51819 | 1 + .../include/boost/move/detail/type_traits.hpp | 1086 +++++ .../boost/move/detail/type_traits.hpp15715 | 1 + .../move/detail/unique_ptr_meta_utils.hpp | 591 +++ .../detail/unique_ptr_meta_utils.hpp53038 | 1 + .../include/boost/move/detail/workaround.hpp | 69 + .../boost/include/boost/move/iterator.hpp | 311 ++ .../include/boost/move/iterator.hpp51896 | 1 + .../boost/include/boost/move/make_unique.hpp | 238 ++ .../include/boost/move/make_unique.hpp53034 | 3 + libraries/boost/include/boost/move/move.hpp | 35 + libraries/boost/include/boost/move/traits.hpp | 77 + .../boost/include/boost/move/traits.hpp52101 | 1 + .../boost/include/boost/move/unique_ptr.hpp | 871 ++++ .../include/boost/move/unique_ptr.hpp53036 | 1 + .../boost/include/boost/move/utility.hpp | 150 + .../boost/include/boost/move/utility_core.hpp | 318 ++ .../include/boost/move/utility_core.hpp15977 | 2 + libraries/boost/include/boost/mp11.hpp | 22 + .../boost/include/boost/mp11/algorithm.hpp | 941 +++++ libraries/boost/include/boost/mp11/bind.hpp | 88 + .../include/boost/mp11/detail/config.hpp | 44 + .../include/boost/mp11/detail/mp_append.hpp | 149 + .../include/boost/mp11/detail/mp_count.hpp | 116 + .../include/boost/mp11/detail/mp_fold.hpp | 63 + .../include/boost/mp11/detail/mp_list.hpp | 24 + .../include/boost/mp11/detail/mp_map_find.hpp | 43 + .../boost/mp11/detail/mp_min_element.hpp | 51 + .../include/boost/mp11/detail/mp_plus.hpp | 82 + .../include/boost/mp11/detail/mp_void.hpp | 32 + .../boost/mp11/detail/mp_with_index.hpp | 374 ++ .../boost/include/boost/mp11/function.hpp | 169 + .../include/boost/mp11/integer_sequence.hpp | 97 + .../boost/include/boost/mp11/integral.hpp | 40 + libraries/boost/include/boost/mp11/list.hpp | 286 ++ libraries/boost/include/boost/mp11/map.hpp | 119 + libraries/boost/include/boost/mp11/mpl.hpp | 175 + libraries/boost/include/boost/mp11/set.hpp | 103 + libraries/boost/include/boost/mp11/tuple.hpp | 97 + .../boost/include/boost/mp11/utility.hpp | 199 + libraries/boost/include/boost/mpi.hpp | 35 + libraries/boost/include/boost/mpl/O1_size.hpp | 40 + .../boost/include/boost/mpl/O1_size.hpp314091 | 1 + .../boost/include/boost/mpl/O1_size_fwd.hpp | 24 + .../include/boost/mpl/O1_size_fwd.hpp314092 | 1 + .../boost/include/boost/mpl/accumulate.hpp | 39 + libraries/boost/include/boost/mpl/advance.hpp | 76 + .../boost/include/boost/mpl/advance.hpp350582 | 1 + .../boost/include/boost/mpl/advance_fwd.hpp | 28 + .../include/boost/mpl/advance_fwd.hpp350583 | 1 + libraries/boost/include/boost/mpl/alias.hpp | 21 + libraries/boost/include/boost/mpl/always.hpp | 38 + libraries/boost/include/boost/mpl/and.hpp | 60 + libraries/boost/include/boost/mpl/apply.hpp | 229 + .../boost/include/boost/mpl/apply_fwd.hpp | 107 + .../boost/include/boost/mpl/apply_wrap.hpp | 234 ++ libraries/boost/include/boost/mpl/arg.hpp | 131 + libraries/boost/include/boost/mpl/arg_fwd.hpp | 28 + .../boost/include/boost/mpl/arithmetic.hpp | 25 + .../boost/include/boost/mpl/as_sequence.hpp | 38 + libraries/boost/include/boost/mpl/assert.hpp | 439 ++ libraries/boost/include/boost/mpl/at.hpp | 52 + libraries/boost/include/boost/mpl/at_fwd.hpp | 24 + .../include/boost/mpl/aux_/O1_size_impl.hpp | 87 + .../boost/mpl/aux_/O1_size_impl.hpp314093 | 1 + .../include/boost/mpl/aux_/adl_barrier.hpp | 48 + .../boost/mpl/aux_/adl_barrier.hpp56635 | 1 + .../boost/mpl/aux_/advance_backward.hpp | 128 + .../boost/mpl/aux_/advance_forward.hpp | 127 + .../include/boost/mpl/aux_/apply_1st.hpp | 35 + .../include/boost/mpl/aux_/arg_typedef.hpp | 31 + .../include/boost/mpl/aux_/arithmetic_op.hpp | 92 + .../boost/include/boost/mpl/aux_/arity.hpp | 39 + .../include/boost/mpl/aux_/arity_spec.hpp | 67 + .../boost/include/boost/mpl/aux_/at_impl.hpp | 45 + .../include/boost/mpl/aux_/back_impl.hpp | 43 + .../include/boost/mpl/aux_/basic_bind.hpp | 21 + .../include/boost/mpl/aux_/begin_end_impl.hpp | 101 + .../boost/mpl/aux_/begin_end_impl.hpp74543 | 1 + .../include/boost/mpl/aux_/clear_impl.hpp | 35 + .../boost/mpl/aux_/common_name_wknd.hpp | 34 + .../include/boost/mpl/aux_/comparison_op.hpp | 83 + .../include/boost/mpl/aux_/config/adl.hpp | 40 + .../include/boost/mpl/aux_/config/arrays.hpp | 30 + .../include/boost/mpl/aux_/config/bcc.hpp | 28 + .../include/boost/mpl/aux_/config/bind.hpp | 33 + .../boost/mpl/aux_/config/compiler.hpp | 66 + .../include/boost/mpl/aux_/config/ctps.hpp | 30 + .../boost/mpl/aux_/config/dependent_nttp.hpp | 35 + .../mpl/aux_/config/dmc_ambiguous_ctps.hpp | 27 + .../include/boost/mpl/aux_/config/dtp.hpp | 46 + .../include/boost/mpl/aux_/config/eti.hpp | 47 + .../boost/mpl/aux_/config/forwarding.hpp | 27 + .../include/boost/mpl/aux_/config/gcc.hpp | 23 + .../include/boost/mpl/aux_/config/gpu.hpp | 35 + .../boost/mpl/aux_/config/has_apply.hpp | 32 + .../include/boost/mpl/aux_/config/has_xxx.hpp | 34 + .../boost/mpl/aux_/config/integral.hpp | 38 + .../include/boost/mpl/aux_/config/intel.hpp | 21 + .../include/boost/mpl/aux_/config/lambda.hpp | 32 + .../include/boost/mpl/aux_/config/msvc.hpp | 21 + .../boost/mpl/aux_/config/msvc_typename.hpp | 26 + .../include/boost/mpl/aux_/config/nttp.hpp | 41 + .../boost/mpl/aux_/config/operators.hpp | 34 + .../mpl/aux_/config/overload_resolution.hpp | 29 + .../boost/mpl/aux_/config/pp_counter.hpp | 26 + .../boost/mpl/aux_/config/preprocessor.hpp | 39 + .../boost/mpl/aux_/config/static_constant.hpp | 25 + .../include/boost/mpl/aux_/config/ttp.hpp | 41 + .../include/boost/mpl/aux_/config/typeof.hpp | 38 + .../mpl/aux_/config/use_preprocessed.hpp | 19 + .../boost/mpl/aux_/config/workaround.hpp | 19 + .../include/boost/mpl/aux_/contains_impl.hpp | 61 + .../include/boost/mpl/aux_/count_args.hpp | 105 + .../include/boost/mpl/aux_/count_impl.hpp | 44 + .../include/boost/mpl/aux_/empty_impl.hpp | 43 + .../include/boost/mpl/aux_/erase_impl.hpp | 69 + .../include/boost/mpl/aux_/erase_key_impl.hpp | 32 + .../include/boost/mpl/aux_/filter_iter.hpp | 140 + .../include/boost/mpl/aux_/find_if_pred.hpp | 31 + .../include/boost/mpl/aux_/fold_impl.hpp | 43 + .../include/boost/mpl/aux_/fold_impl_body.hpp | 365 ++ .../boost/include/boost/mpl/aux_/fold_op.hpp | 37 + .../include/boost/mpl/aux_/fold_pred.hpp | 37 + .../include/boost/mpl/aux_/front_impl.hpp | 41 + .../include/boost/mpl/aux_/full_lambda.hpp | 354 ++ .../include/boost/mpl/aux_/has_apply.hpp | 32 + .../boost/mpl/aux_/has_apply.hpp308179 | 1 + .../include/boost/mpl/aux_/has_begin.hpp | 23 + .../include/boost/mpl/aux_/has_begin.hpp90667 | 1 + .../include/boost/mpl/aux_/has_key_impl.hpp | 34 + .../include/boost/mpl/aux_/has_rebind.hpp | 99 + .../boost/include/boost/mpl/aux_/has_size.hpp | 23 + .../include/boost/mpl/aux_/has_size.hpp314262 | 1 + .../boost/include/boost/mpl/aux_/has_tag.hpp | 23 + .../include/boost/mpl/aux_/has_tag.hpp90901 | 1 + .../boost/include/boost/mpl/aux_/has_type.hpp | 23 + .../include/boost/mpl/aux_/has_type.hpp328164 | 1 + .../boost/mpl/aux_/include_preprocessed.hpp | 42 + .../include/boost/mpl/aux_/insert_impl.hpp | 68 + .../boost/mpl/aux_/insert_range_impl.hpp | 80 + .../boost/mpl/aux_/inserter_algorithm.hpp | 159 + .../boost/mpl/aux_/integral_wrapper.hpp | 93 + .../boost/mpl/aux_/is_msvc_eti_arg.hpp | 64 + .../boost/mpl/aux_/is_msvc_eti_arg.hpp90910 | 1 + .../include/boost/mpl/aux_/iter_apply.hpp | 47 + .../boost/mpl/aux_/iter_fold_if_impl.hpp | 210 + .../include/boost/mpl/aux_/iter_fold_impl.hpp | 42 + .../boost/mpl/aux_/iter_push_front.hpp | 36 + .../include/boost/mpl/aux_/joint_iter.hpp | 120 + .../boost/mpl/aux_/lambda_arity_param.hpp | 25 + .../include/boost/mpl/aux_/lambda_no_ctps.hpp | 193 + .../include/boost/mpl/aux_/lambda_spec.hpp | 49 + .../include/boost/mpl/aux_/lambda_support.hpp | 169 + .../include/boost/mpl/aux_/largest_int.hpp | 63 + .../boost/mpl/aux_/largest_int.hpp344657 | 1 + .../include/boost/mpl/aux_/logical_op.hpp | 165 + .../boost/include/boost/mpl/aux_/msvc_dtw.hpp | 68 + .../include/boost/mpl/aux_/msvc_eti_base.hpp | 77 + .../boost/mpl/aux_/msvc_eti_base.hpp308273 | 1 + .../include/boost/mpl/aux_/msvc_is_class.hpp | 58 + .../boost/mpl/aux_/msvc_never_true.hpp | 34 + .../include/boost/mpl/aux_/msvc_type.hpp | 62 + .../boost/mpl/aux_/msvc_type.hpp333876 | 1 + libraries/boost/include/boost/mpl/aux_/na.hpp | 95 + .../boost/include/boost/mpl/aux_/na.hpp57367 | 1 + .../include/boost/mpl/aux_/na_assert.hpp | 34 + .../boost/include/boost/mpl/aux_/na_fwd.hpp | 31 + .../boost/include/boost/mpl/aux_/na_spec.hpp | 175 + .../boost/mpl/aux_/nested_type_wknd.hpp | 48 + .../boost/mpl/aux_/nested_type_wknd.hpp63251 | 1 + .../include/boost/mpl/aux_/nttp_decl.hpp | 35 + .../boost/mpl/aux_/numeric_cast_utils.hpp | 77 + .../mpl/aux_/numeric_cast_utils.hpp308254 | 1 + .../include/boost/mpl/aux_/numeric_op.hpp | 315 ++ .../include/boost/mpl/aux_/order_impl.hpp | 76 + .../include/boost/mpl/aux_/overload_names.hpp | 48 + .../include/boost/mpl/aux_/partition_op.hpp | 58 + .../include/boost/mpl/aux_/pop_back_impl.hpp | 34 + .../include/boost/mpl/aux_/pop_front_impl.hpp | 44 + .../preprocessed/bcc/advance_backward.hpp | 97 + .../aux_/preprocessed/bcc/advance_forward.hpp | 97 + .../boost/mpl/aux_/preprocessed/bcc/and.hpp | 69 + .../boost/mpl/aux_/preprocessed/bcc/apply.hpp | 169 + .../mpl/aux_/preprocessed/bcc/apply_fwd.hpp | 52 + .../mpl/aux_/preprocessed/bcc/apply_wrap.hpp | 461 +++ .../boost/mpl/aux_/preprocessed/bcc/arg.hpp | 117 + .../mpl/aux_/preprocessed/bcc/basic_bind.hpp | 300 ++ .../boost/mpl/aux_/preprocessed/bcc/bind.hpp | 397 ++ .../mpl/aux_/preprocessed/bcc/bind_fwd.hpp | 46 + .../mpl/aux_/preprocessed/bcc/bitand.hpp | 147 + .../boost/mpl/aux_/preprocessed/bcc/bitor.hpp | 147 + .../mpl/aux_/preprocessed/bcc/bitxor.hpp | 147 + .../boost/mpl/aux_/preprocessed/bcc/deque.hpp | 323 ++ .../mpl/aux_/preprocessed/bcc/divides.hpp | 146 + .../mpl/aux_/preprocessed/bcc/equal_to.hpp | 94 + .../mpl/aux_/preprocessed/bcc/fold_impl.hpp | 180 + .../mpl/aux_/preprocessed/bcc/full_lambda.hpp | 558 +++ .../mpl/aux_/preprocessed/bcc/greater.hpp | 94 + .../aux_/preprocessed/bcc/greater_equal.hpp | 94 + .../mpl/aux_/preprocessed/bcc/inherit.hpp | 139 + .../preprocessed/bcc/iter_fold_if_impl.hpp | 133 + .../aux_/preprocessed/bcc/iter_fold_impl.hpp | 180 + .../aux_/preprocessed/bcc/lambda_no_ctps.hpp | 229 + .../boost/mpl/aux_/preprocessed/bcc/less.hpp | 94 + .../mpl/aux_/preprocessed/bcc/less_equal.hpp | 94 + .../boost/mpl/aux_/preprocessed/bcc/list.hpp | 323 ++ .../mpl/aux_/preprocessed/bcc/list_c.hpp | 328 ++ .../boost/mpl/aux_/preprocessed/bcc/map.hpp | 323 ++ .../boost/mpl/aux_/preprocessed/bcc/minus.hpp | 146 + .../mpl/aux_/preprocessed/bcc/modulus.hpp | 101 + .../aux_/preprocessed/bcc/not_equal_to.hpp | 94 + .../boost/mpl/aux_/preprocessed/bcc/or.hpp | 69 + .../aux_/preprocessed/bcc/placeholders.hpp | 105 + .../boost/mpl/aux_/preprocessed/bcc/plus.hpp | 146 + .../boost/mpl/aux_/preprocessed/bcc/quote.hpp | 119 + .../preprocessed/bcc/reverse_fold_impl.hpp | 295 ++ .../bcc/reverse_iter_fold_impl.hpp | 295 ++ .../boost/mpl/aux_/preprocessed/bcc/set.hpp | 323 ++ .../boost/mpl/aux_/preprocessed/bcc/set_c.hpp | 328 ++ .../mpl/aux_/preprocessed/bcc/shift_left.hpp | 99 + .../mpl/aux_/preprocessed/bcc/shift_right.hpp | 99 + .../aux_/preprocessed/bcc/template_arity.hpp | 40 + .../boost/mpl/aux_/preprocessed/bcc/times.hpp | 146 + .../mpl/aux_/preprocessed/bcc/unpack_args.hpp | 97 + .../mpl/aux_/preprocessed/bcc/vector.hpp | 323 ++ .../mpl/aux_/preprocessed/bcc/vector_c.hpp | 309 ++ .../preprocessed/bcc551/advance_backward.hpp | 97 + .../preprocessed/bcc551/advance_forward.hpp | 97 + .../mpl/aux_/preprocessed/bcc551/and.hpp | 69 + .../mpl/aux_/preprocessed/bcc551/apply.hpp | 169 + .../aux_/preprocessed/bcc551/apply_fwd.hpp | 52 + .../aux_/preprocessed/bcc551/apply_wrap.hpp | 456 ++ .../mpl/aux_/preprocessed/bcc551/arg.hpp | 123 + .../aux_/preprocessed/bcc551/basic_bind.hpp | 306 ++ .../mpl/aux_/preprocessed/bcc551/bind.hpp | 403 ++ .../mpl/aux_/preprocessed/bcc551/bind_fwd.hpp | 46 + .../mpl/aux_/preprocessed/bcc551/bitand.hpp | 147 + .../mpl/aux_/preprocessed/bcc551/bitor.hpp | 147 + .../mpl/aux_/preprocessed/bcc551/bitxor.hpp | 147 + .../mpl/aux_/preprocessed/bcc551/deque.hpp | 323 ++ .../mpl/aux_/preprocessed/bcc551/divides.hpp | 146 + .../mpl/aux_/preprocessed/bcc551/equal_to.hpp | 94 + .../aux_/preprocessed/bcc551/fold_impl.hpp | 180 + .../aux_/preprocessed/bcc551/full_lambda.hpp | 558 +++ .../mpl/aux_/preprocessed/bcc551/greater.hpp | 94 + .../preprocessed/bcc551/greater_equal.hpp | 94 + .../mpl/aux_/preprocessed/bcc551/inherit.hpp | 141 + .../preprocessed/bcc551/iter_fold_if_impl.hpp | 133 + .../preprocessed/bcc551/iter_fold_impl.hpp | 180 + .../preprocessed/bcc551/lambda_no_ctps.hpp | 229 + .../mpl/aux_/preprocessed/bcc551/less.hpp | 94 + .../aux_/preprocessed/bcc551/less_equal.hpp | 94 + .../mpl/aux_/preprocessed/bcc551/list.hpp | 323 ++ .../mpl/aux_/preprocessed/bcc551/list_c.hpp | 328 ++ .../mpl/aux_/preprocessed/bcc551/map.hpp | 323 ++ .../mpl/aux_/preprocessed/bcc551/minus.hpp | 146 + .../mpl/aux_/preprocessed/bcc551/modulus.hpp | 101 + .../aux_/preprocessed/bcc551/not_equal_to.hpp | 94 + .../boost/mpl/aux_/preprocessed/bcc551/or.hpp | 69 + .../aux_/preprocessed/bcc551/placeholders.hpp | 105 + .../mpl/aux_/preprocessed/bcc551/plus.hpp | 146 + .../mpl/aux_/preprocessed/bcc551/quote.hpp | 11 + .../preprocessed/bcc551/reverse_fold_impl.hpp | 295 ++ .../bcc551/reverse_iter_fold_impl.hpp | 295 ++ .../mpl/aux_/preprocessed/bcc551/set.hpp | 323 ++ .../mpl/aux_/preprocessed/bcc551/set_c.hpp | 328 ++ .../aux_/preprocessed/bcc551/shift_left.hpp | 99 + .../aux_/preprocessed/bcc551/shift_right.hpp | 99 + .../preprocessed/bcc551/template_arity.hpp | 40 + .../mpl/aux_/preprocessed/bcc551/times.hpp | 146 + .../aux_/preprocessed/bcc551/unpack_args.hpp | 97 + .../mpl/aux_/preprocessed/bcc551/vector.hpp | 323 ++ .../mpl/aux_/preprocessed/bcc551/vector_c.hpp | 309 ++ .../bcc_pre590/advance_backward.hpp | 97 + .../bcc_pre590/advance_forward.hpp | 97 + .../mpl/aux_/preprocessed/bcc_pre590/and.hpp | 69 + .../aux_/preprocessed/bcc_pre590/apply.hpp | 169 + .../preprocessed/bcc_pre590/apply_fwd.hpp | 52 + .../preprocessed/bcc_pre590/apply_wrap.hpp | 456 ++ .../mpl/aux_/preprocessed/bcc_pre590/arg.hpp | 117 + .../preprocessed/bcc_pre590/basic_bind.hpp | 300 ++ .../mpl/aux_/preprocessed/bcc_pre590/bind.hpp | 397 ++ .../aux_/preprocessed/bcc_pre590/bind_fwd.hpp | 46 + .../aux_/preprocessed/bcc_pre590/bitand.hpp | 147 + .../aux_/preprocessed/bcc_pre590/bitor.hpp | 147 + .../aux_/preprocessed/bcc_pre590/bitxor.hpp | 147 + .../aux_/preprocessed/bcc_pre590/deque.hpp | 323 ++ .../aux_/preprocessed/bcc_pre590/divides.hpp | 146 + .../aux_/preprocessed/bcc_pre590/equal_to.hpp | 94 + .../preprocessed/bcc_pre590/fold_impl.hpp | 180 + .../preprocessed/bcc_pre590/full_lambda.hpp | 558 +++ .../aux_/preprocessed/bcc_pre590/greater.hpp | 94 + .../preprocessed/bcc_pre590/greater_equal.hpp | 94 + .../aux_/preprocessed/bcc_pre590/inherit.hpp | 139 + .../bcc_pre590/iter_fold_if_impl.hpp | 133 + .../bcc_pre590/iter_fold_impl.hpp | 180 + .../bcc_pre590/lambda_no_ctps.hpp | 229 + .../mpl/aux_/preprocessed/bcc_pre590/less.hpp | 94 + .../preprocessed/bcc_pre590/less_equal.hpp | 94 + .../mpl/aux_/preprocessed/bcc_pre590/list.hpp | 323 ++ .../aux_/preprocessed/bcc_pre590/list_c.hpp | 328 ++ .../mpl/aux_/preprocessed/bcc_pre590/map.hpp | 323 ++ .../aux_/preprocessed/bcc_pre590/minus.hpp | 146 + .../aux_/preprocessed/bcc_pre590/modulus.hpp | 101 + .../preprocessed/bcc_pre590/not_equal_to.hpp | 94 + .../mpl/aux_/preprocessed/bcc_pre590/or.hpp | 69 + .../preprocessed/bcc_pre590/placeholders.hpp | 105 + .../mpl/aux_/preprocessed/bcc_pre590/plus.hpp | 146 + .../aux_/preprocessed/bcc_pre590/quote.hpp | 11 + .../bcc_pre590/reverse_fold_impl.hpp | 295 ++ .../bcc_pre590/reverse_iter_fold_impl.hpp | 295 ++ .../mpl/aux_/preprocessed/bcc_pre590/set.hpp | 323 ++ .../aux_/preprocessed/bcc_pre590/set_c.hpp | 328 ++ .../preprocessed/bcc_pre590/shift_left.hpp | 99 + .../preprocessed/bcc_pre590/shift_right.hpp | 99 + .../bcc_pre590/template_arity.hpp | 40 + .../aux_/preprocessed/bcc_pre590/times.hpp | 146 + .../preprocessed/bcc_pre590/unpack_args.hpp | 97 + .../aux_/preprocessed/bcc_pre590/vector.hpp | 323 ++ .../aux_/preprocessed/bcc_pre590/vector_c.hpp | 309 ++ .../preprocessed/dmc/advance_backward.hpp | 97 + .../aux_/preprocessed/dmc/advance_forward.hpp | 97 + .../boost/mpl/aux_/preprocessed/dmc/and.hpp | 69 + .../boost/mpl/aux_/preprocessed/dmc/apply.hpp | 169 + .../mpl/aux_/preprocessed/dmc/apply_fwd.hpp | 52 + .../mpl/aux_/preprocessed/dmc/apply_wrap.hpp | 84 + .../boost/mpl/aux_/preprocessed/dmc/arg.hpp | 123 + .../mpl/aux_/preprocessed/dmc/basic_bind.hpp | 406 ++ .../boost/mpl/aux_/preprocessed/dmc/bind.hpp | 515 +++ .../mpl/aux_/preprocessed/dmc/bind_fwd.hpp | 53 + .../mpl/aux_/preprocessed/dmc/bitand.hpp | 147 + .../boost/mpl/aux_/preprocessed/dmc/bitor.hpp | 147 + .../mpl/aux_/preprocessed/dmc/bitxor.hpp | 147 + .../boost/mpl/aux_/preprocessed/dmc/deque.hpp | 323 ++ .../mpl/aux_/preprocessed/dmc/divides.hpp | 146 + .../mpl/aux_/preprocessed/dmc/equal_to.hpp | 94 + .../mpl/aux_/preprocessed/dmc/fold_impl.hpp | 180 + .../mpl/aux_/preprocessed/dmc/full_lambda.hpp | 536 +++ .../mpl/aux_/preprocessed/dmc/greater.hpp | 94 + .../aux_/preprocessed/dmc/greater_equal.hpp | 94 + .../mpl/aux_/preprocessed/dmc/inherit.hpp | 141 + .../preprocessed/dmc/iter_fold_if_impl.hpp | 133 + .../aux_/preprocessed/dmc/iter_fold_impl.hpp | 180 + .../aux_/preprocessed/dmc/lambda_no_ctps.hpp | 229 + .../boost/mpl/aux_/preprocessed/dmc/less.hpp | 94 + .../mpl/aux_/preprocessed/dmc/less_equal.hpp | 94 + .../boost/mpl/aux_/preprocessed/dmc/list.hpp | 323 ++ .../mpl/aux_/preprocessed/dmc/list_c.hpp | 328 ++ .../boost/mpl/aux_/preprocessed/dmc/map.hpp | 323 ++ .../boost/mpl/aux_/preprocessed/dmc/minus.hpp | 146 + .../mpl/aux_/preprocessed/dmc/modulus.hpp | 101 + .../aux_/preprocessed/dmc/not_equal_to.hpp | 94 + .../boost/mpl/aux_/preprocessed/dmc/or.hpp | 69 + .../aux_/preprocessed/dmc/placeholders.hpp | 105 + .../boost/mpl/aux_/preprocessed/dmc/plus.hpp | 146 + .../boost/mpl/aux_/preprocessed/dmc/quote.hpp | 123 + .../preprocessed/dmc/reverse_fold_impl.hpp | 231 ++ .../dmc/reverse_iter_fold_impl.hpp | 231 ++ .../boost/mpl/aux_/preprocessed/dmc/set.hpp | 323 ++ .../boost/mpl/aux_/preprocessed/dmc/set_c.hpp | 328 ++ .../mpl/aux_/preprocessed/dmc/shift_left.hpp | 99 + .../mpl/aux_/preprocessed/dmc/shift_right.hpp | 99 + .../aux_/preprocessed/dmc/template_arity.hpp | 11 + .../boost/mpl/aux_/preprocessed/dmc/times.hpp | 146 + .../mpl/aux_/preprocessed/dmc/unpack_args.hpp | 94 + .../mpl/aux_/preprocessed/dmc/vector.hpp | 323 ++ .../mpl/aux_/preprocessed/dmc/vector_c.hpp | 309 ++ .../preprocessed/gcc/advance_backward.hpp | 97 + .../gcc/advance_backward.hpp361548 | 1 + .../aux_/preprocessed/gcc/advance_forward.hpp | 97 + .../gcc/advance_forward.hpp361518 | 1 + .../boost/mpl/aux_/preprocessed/gcc/and.hpp | 69 + .../mpl/aux_/preprocessed/gcc/and.hpp68792 | 1 + .../boost/mpl/aux_/preprocessed/gcc/apply.hpp | 169 + .../mpl/aux_/preprocessed/gcc/apply.hpp333874 | 1 + .../mpl/aux_/preprocessed/gcc/apply_fwd.hpp | 52 + .../aux_/preprocessed/gcc/apply_fwd.hpp319709 | 1 + .../mpl/aux_/preprocessed/gcc/apply_wrap.hpp | 84 + .../preprocessed/gcc/apply_wrap.hpp308252 | 1 + .../boost/mpl/aux_/preprocessed/gcc/arg.hpp | 123 + .../mpl/aux_/preprocessed/gcc/basic_bind.hpp | 440 ++ .../boost/mpl/aux_/preprocessed/gcc/bind.hpp | 561 +++ .../mpl/aux_/preprocessed/gcc/bind.hpp325026 | 1 + .../mpl/aux_/preprocessed/gcc/bind_fwd.hpp | 52 + .../aux_/preprocessed/gcc/bind_fwd.hpp320025 | 1 + .../mpl/aux_/preprocessed/gcc/bitand.hpp | 147 + .../boost/mpl/aux_/preprocessed/gcc/bitor.hpp | 147 + .../mpl/aux_/preprocessed/gcc/bitxor.hpp | 147 + .../boost/mpl/aux_/preprocessed/gcc/deque.hpp | 323 ++ .../mpl/aux_/preprocessed/gcc/divides.hpp | 146 + .../mpl/aux_/preprocessed/gcc/equal_to.hpp | 94 + .../aux_/preprocessed/gcc/equal_to.hpp308329 | 2 + .../mpl/aux_/preprocessed/gcc/fold_impl.hpp | 180 + .../aux_/preprocessed/gcc/fold_impl.hpp339282 | 1 + .../mpl/aux_/preprocessed/gcc/full_lambda.hpp | 558 +++ .../preprocessed/gcc/full_lambda.hpp328289 | 1 + .../mpl/aux_/preprocessed/gcc/greater.hpp | 94 + .../aux_/preprocessed/gcc/greater_equal.hpp | 94 + .../mpl/aux_/preprocessed/gcc/inherit.hpp | 141 + .../aux_/preprocessed/gcc/inherit.hpp383331 | 1 + .../preprocessed/gcc/iter_fold_if_impl.hpp | 133 + .../aux_/preprocessed/gcc/iter_fold_impl.hpp | 180 + .../preprocessed/gcc/iter_fold_impl.hpp367060 | 1 + .../aux_/preprocessed/gcc/lambda_no_ctps.hpp | 229 + .../boost/mpl/aux_/preprocessed/gcc/less.hpp | 94 + .../mpl/aux_/preprocessed/gcc/less.hpp350618 | 2 + .../mpl/aux_/preprocessed/gcc/less_equal.hpp | 94 + .../boost/mpl/aux_/preprocessed/gcc/list.hpp | 323 ++ .../mpl/aux_/preprocessed/gcc/list_c.hpp | 328 ++ .../boost/mpl/aux_/preprocessed/gcc/map.hpp | 323 ++ .../boost/mpl/aux_/preprocessed/gcc/minus.hpp | 146 + .../mpl/aux_/preprocessed/gcc/minus.hpp404273 | 2 + .../mpl/aux_/preprocessed/gcc/modulus.hpp | 101 + .../aux_/preprocessed/gcc/not_equal_to.hpp | 94 + .../boost/mpl/aux_/preprocessed/gcc/or.hpp | 69 + .../mpl/aux_/preprocessed/gcc/or.hpp123422 | 1 + .../aux_/preprocessed/gcc/placeholders.hpp | 105 + .../preprocessed/gcc/placeholders.hpp319930 | 7 + .../boost/mpl/aux_/preprocessed/gcc/plus.hpp | 146 + .../mpl/aux_/preprocessed/gcc/plus.hpp344690 | 2 + .../boost/mpl/aux_/preprocessed/gcc/quote.hpp | 123 + .../mpl/aux_/preprocessed/gcc/quote.hpp328222 | 1 + .../preprocessed/gcc/reverse_fold_impl.hpp | 231 ++ .../gcc/reverse_iter_fold_impl.hpp | 231 ++ .../boost/mpl/aux_/preprocessed/gcc/set.hpp | 323 ++ .../boost/mpl/aux_/preprocessed/gcc/set_c.hpp | 328 ++ .../mpl/aux_/preprocessed/gcc/shift_left.hpp | 99 + .../mpl/aux_/preprocessed/gcc/shift_right.hpp | 99 + .../aux_/preprocessed/gcc/template_arity.hpp | 97 + .../preprocessed/gcc/template_arity.hpp328252 | 1 + .../boost/mpl/aux_/preprocessed/gcc/times.hpp | 146 + .../mpl/aux_/preprocessed/gcc/unpack_args.hpp | 94 + .../mpl/aux_/preprocessed/gcc/vector.hpp | 323 ++ .../mpl/aux_/preprocessed/gcc/vector_c.hpp | 309 ++ .../preprocessed/msvc60/advance_backward.hpp | 132 + .../preprocessed/msvc60/advance_forward.hpp | 132 + .../mpl/aux_/preprocessed/msvc60/and.hpp | 73 + .../mpl/aux_/preprocessed/msvc60/apply.hpp | 166 + .../aux_/preprocessed/msvc60/apply_fwd.hpp | 46 + .../aux_/preprocessed/msvc60/apply_wrap.hpp | 247 ++ .../mpl/aux_/preprocessed/msvc60/arg.hpp | 123 + .../aux_/preprocessed/msvc60/basic_bind.hpp | 328 ++ .../mpl/aux_/preprocessed/msvc60/bind.hpp | 432 ++ .../mpl/aux_/preprocessed/msvc60/bind_fwd.hpp | 46 + .../mpl/aux_/preprocessed/msvc60/bitand.hpp | 149 + .../mpl/aux_/preprocessed/msvc60/bitor.hpp | 149 + .../mpl/aux_/preprocessed/msvc60/bitxor.hpp | 149 + .../mpl/aux_/preprocessed/msvc60/deque.hpp | 556 +++ .../mpl/aux_/preprocessed/msvc60/divides.hpp | 148 + .../mpl/aux_/preprocessed/msvc60/equal_to.hpp | 102 + .../aux_/preprocessed/msvc60/fold_impl.hpp | 293 ++ .../aux_/preprocessed/msvc60/full_lambda.hpp | 554 +++ .../mpl/aux_/preprocessed/msvc60/greater.hpp | 102 + .../preprocessed/msvc60/greater_equal.hpp | 102 + .../mpl/aux_/preprocessed/msvc60/inherit.hpp | 166 + .../preprocessed/msvc60/iter_fold_if_impl.hpp | 133 + .../preprocessed/msvc60/iter_fold_impl.hpp | 293 ++ .../preprocessed/msvc60/lambda_no_ctps.hpp | 229 + .../mpl/aux_/preprocessed/msvc60/less.hpp | 102 + .../aux_/preprocessed/msvc60/less_equal.hpp | 102 + .../mpl/aux_/preprocessed/msvc60/list.hpp | 556 +++ .../mpl/aux_/preprocessed/msvc60/list_c.hpp | 534 +++ .../mpl/aux_/preprocessed/msvc60/map.hpp | 556 +++ .../mpl/aux_/preprocessed/msvc60/minus.hpp | 148 + .../mpl/aux_/preprocessed/msvc60/modulus.hpp | 115 + .../aux_/preprocessed/msvc60/not_equal_to.hpp | 102 + .../boost/mpl/aux_/preprocessed/msvc60/or.hpp | 73 + .../aux_/preprocessed/msvc60/placeholders.hpp | 105 + .../mpl/aux_/preprocessed/msvc60/plus.hpp | 148 + .../mpl/aux_/preprocessed/msvc60/quote.hpp | 11 + .../preprocessed/msvc60/reverse_fold_impl.hpp | 343 ++ .../msvc60/reverse_iter_fold_impl.hpp | 343 ++ .../mpl/aux_/preprocessed/msvc60/set.hpp | 556 +++ .../mpl/aux_/preprocessed/msvc60/set_c.hpp | 534 +++ .../aux_/preprocessed/msvc60/shift_left.hpp | 114 + .../aux_/preprocessed/msvc60/shift_right.hpp | 114 + .../preprocessed/msvc60/template_arity.hpp | 46 + .../mpl/aux_/preprocessed/msvc60/times.hpp | 148 + .../aux_/preprocessed/msvc60/unpack_args.hpp | 109 + .../mpl/aux_/preprocessed/msvc60/vector.hpp | 556 +++ .../mpl/aux_/preprocessed/msvc60/vector_c.hpp | 534 +++ .../preprocessed/msvc70/advance_backward.hpp | 97 + .../preprocessed/msvc70/advance_forward.hpp | 97 + .../mpl/aux_/preprocessed/msvc70/and.hpp | 71 + .../mpl/aux_/preprocessed/msvc70/apply.hpp | 160 + .../aux_/preprocessed/msvc70/apply_fwd.hpp | 46 + .../aux_/preprocessed/msvc70/apply_wrap.hpp | 138 + .../mpl/aux_/preprocessed/msvc70/arg.hpp | 123 + .../aux_/preprocessed/msvc70/basic_bind.hpp | 328 ++ .../mpl/aux_/preprocessed/msvc70/bind.hpp | 432 ++ .../mpl/aux_/preprocessed/msvc70/bind_fwd.hpp | 46 + .../mpl/aux_/preprocessed/msvc70/bitand.hpp | 151 + .../mpl/aux_/preprocessed/msvc70/bitor.hpp | 151 + .../mpl/aux_/preprocessed/msvc70/bitxor.hpp | 151 + .../mpl/aux_/preprocessed/msvc70/deque.hpp | 556 +++ .../mpl/aux_/preprocessed/msvc70/divides.hpp | 150 + .../mpl/aux_/preprocessed/msvc70/equal_to.hpp | 102 + .../aux_/preprocessed/msvc70/fold_impl.hpp | 245 ++ .../aux_/preprocessed/msvc70/full_lambda.hpp | 554 +++ .../mpl/aux_/preprocessed/msvc70/greater.hpp | 102 + .../preprocessed/msvc70/greater_equal.hpp | 102 + .../mpl/aux_/preprocessed/msvc70/inherit.hpp | 166 + .../preprocessed/msvc70/iter_fold_if_impl.hpp | 133 + .../preprocessed/msvc70/iter_fold_impl.hpp | 245 ++ .../preprocessed/msvc70/lambda_no_ctps.hpp | 229 + .../mpl/aux_/preprocessed/msvc70/less.hpp | 102 + .../aux_/preprocessed/msvc70/less_equal.hpp | 102 + .../mpl/aux_/preprocessed/msvc70/list.hpp | 556 +++ .../mpl/aux_/preprocessed/msvc70/list_c.hpp | 534 +++ .../mpl/aux_/preprocessed/msvc70/map.hpp | 556 +++ .../mpl/aux_/preprocessed/msvc70/minus.hpp | 150 + .../mpl/aux_/preprocessed/msvc70/modulus.hpp | 115 + .../aux_/preprocessed/msvc70/not_equal_to.hpp | 102 + .../boost/mpl/aux_/preprocessed/msvc70/or.hpp | 71 + .../aux_/preprocessed/msvc70/placeholders.hpp | 105 + .../mpl/aux_/preprocessed/msvc70/plus.hpp | 150 + .../mpl/aux_/preprocessed/msvc70/quote.hpp | 116 + .../preprocessed/msvc70/reverse_fold_impl.hpp | 295 ++ .../msvc70/reverse_iter_fold_impl.hpp | 295 ++ .../mpl/aux_/preprocessed/msvc70/set.hpp | 556 +++ .../mpl/aux_/preprocessed/msvc70/set_c.hpp | 534 +++ .../aux_/preprocessed/msvc70/shift_left.hpp | 114 + .../aux_/preprocessed/msvc70/shift_right.hpp | 114 + .../preprocessed/msvc70/template_arity.hpp | 46 + .../mpl/aux_/preprocessed/msvc70/times.hpp | 150 + .../aux_/preprocessed/msvc70/unpack_args.hpp | 109 + .../mpl/aux_/preprocessed/msvc70/vector.hpp | 556 +++ .../mpl/aux_/preprocessed/msvc70/vector_c.hpp | 534 +++ .../preprocessed/mwcw/advance_backward.hpp | 97 + .../preprocessed/mwcw/advance_forward.hpp | 97 + .../boost/mpl/aux_/preprocessed/mwcw/and.hpp | 69 + .../mpl/aux_/preprocessed/mwcw/apply.hpp | 169 + .../mpl/aux_/preprocessed/mwcw/apply_fwd.hpp | 52 + .../mpl/aux_/preprocessed/mwcw/apply_wrap.hpp | 456 ++ .../boost/mpl/aux_/preprocessed/mwcw/arg.hpp | 123 + .../mpl/aux_/preprocessed/mwcw/basic_bind.hpp | 440 ++ .../boost/mpl/aux_/preprocessed/mwcw/bind.hpp | 561 +++ .../mpl/aux_/preprocessed/mwcw/bind_fwd.hpp | 52 + .../mpl/aux_/preprocessed/mwcw/bitand.hpp | 147 + .../mpl/aux_/preprocessed/mwcw/bitor.hpp | 147 + .../mpl/aux_/preprocessed/mwcw/bitxor.hpp | 147 + .../mpl/aux_/preprocessed/mwcw/deque.hpp | 323 ++ .../mpl/aux_/preprocessed/mwcw/divides.hpp | 146 + .../mpl/aux_/preprocessed/mwcw/equal_to.hpp | 94 + .../mpl/aux_/preprocessed/mwcw/fold_impl.hpp | 180 + .../aux_/preprocessed/mwcw/full_lambda.hpp | 554 +++ .../mpl/aux_/preprocessed/mwcw/greater.hpp | 94 + .../aux_/preprocessed/mwcw/greater_equal.hpp | 94 + .../mpl/aux_/preprocessed/mwcw/inherit.hpp | 141 + .../preprocessed/mwcw/iter_fold_if_impl.hpp | 133 + .../aux_/preprocessed/mwcw/iter_fold_impl.hpp | 180 + .../aux_/preprocessed/mwcw/lambda_no_ctps.hpp | 229 + .../boost/mpl/aux_/preprocessed/mwcw/less.hpp | 94 + .../mpl/aux_/preprocessed/mwcw/less_equal.hpp | 94 + .../boost/mpl/aux_/preprocessed/mwcw/list.hpp | 323 ++ .../mpl/aux_/preprocessed/mwcw/list_c.hpp | 328 ++ .../boost/mpl/aux_/preprocessed/mwcw/map.hpp | 323 ++ .../mpl/aux_/preprocessed/mwcw/minus.hpp | 146 + .../mpl/aux_/preprocessed/mwcw/modulus.hpp | 101 + .../aux_/preprocessed/mwcw/not_equal_to.hpp | 94 + .../boost/mpl/aux_/preprocessed/mwcw/or.hpp | 69 + .../aux_/preprocessed/mwcw/placeholders.hpp | 105 + .../boost/mpl/aux_/preprocessed/mwcw/plus.hpp | 146 + .../mpl/aux_/preprocessed/mwcw/quote.hpp | 123 + .../preprocessed/mwcw/reverse_fold_impl.hpp | 231 ++ .../mwcw/reverse_iter_fold_impl.hpp | 231 ++ .../boost/mpl/aux_/preprocessed/mwcw/set.hpp | 323 ++ .../mpl/aux_/preprocessed/mwcw/set_c.hpp | 328 ++ .../mpl/aux_/preprocessed/mwcw/shift_left.hpp | 99 + .../aux_/preprocessed/mwcw/shift_right.hpp | 99 + .../aux_/preprocessed/mwcw/template_arity.hpp | 11 + .../mpl/aux_/preprocessed/mwcw/times.hpp | 146 + .../aux_/preprocessed/mwcw/unpack_args.hpp | 94 + .../mpl/aux_/preprocessed/mwcw/vector.hpp | 323 ++ .../mpl/aux_/preprocessed/mwcw/vector_c.hpp | 309 ++ .../preprocessed/no_ctps/advance_backward.hpp | 97 + .../preprocessed/no_ctps/advance_forward.hpp | 97 + .../mpl/aux_/preprocessed/no_ctps/and.hpp | 73 + .../mpl/aux_/preprocessed/no_ctps/apply.hpp | 268 ++ .../aux_/preprocessed/no_ctps/apply_fwd.hpp | 50 + .../aux_/preprocessed/no_ctps/apply_wrap.hpp | 78 + .../mpl/aux_/preprocessed/no_ctps/arg.hpp | 123 + .../aux_/preprocessed/no_ctps/basic_bind.hpp | 486 +++ .../mpl/aux_/preprocessed/no_ctps/bind.hpp | 590 +++ .../aux_/preprocessed/no_ctps/bind_fwd.hpp | 52 + .../mpl/aux_/preprocessed/no_ctps/bitand.hpp | 134 + .../mpl/aux_/preprocessed/no_ctps/bitor.hpp | 134 + .../mpl/aux_/preprocessed/no_ctps/bitxor.hpp | 134 + .../mpl/aux_/preprocessed/no_ctps/deque.hpp | 556 +++ .../mpl/aux_/preprocessed/no_ctps/divides.hpp | 133 + .../aux_/preprocessed/no_ctps/equal_to.hpp | 94 + .../aux_/preprocessed/no_ctps/fold_impl.hpp | 245 ++ .../aux_/preprocessed/no_ctps/full_lambda.hpp | 554 +++ .../mpl/aux_/preprocessed/no_ctps/greater.hpp | 94 + .../preprocessed/no_ctps/greater_equal.hpp | 94 + .../mpl/aux_/preprocessed/no_ctps/inherit.hpp | 166 + .../no_ctps/iter_fold_if_impl.hpp | 133 + .../preprocessed/no_ctps/iter_fold_impl.hpp | 245 ++ .../preprocessed/no_ctps/lambda_no_ctps.hpp | 229 + .../mpl/aux_/preprocessed/no_ctps/less.hpp | 94 + .../aux_/preprocessed/no_ctps/less_equal.hpp | 94 + .../mpl/aux_/preprocessed/no_ctps/list.hpp | 556 +++ .../mpl/aux_/preprocessed/no_ctps/list_c.hpp | 534 +++ .../mpl/aux_/preprocessed/no_ctps/map.hpp | 556 +++ .../mpl/aux_/preprocessed/no_ctps/minus.hpp | 133 + .../mpl/aux_/preprocessed/no_ctps/modulus.hpp | 101 + .../preprocessed/no_ctps/not_equal_to.hpp | 94 + .../mpl/aux_/preprocessed/no_ctps/or.hpp | 73 + .../preprocessed/no_ctps/placeholders.hpp | 105 + .../mpl/aux_/preprocessed/no_ctps/plus.hpp | 133 + .../mpl/aux_/preprocessed/no_ctps/quote.hpp | 116 + .../no_ctps/reverse_fold_impl.hpp | 295 ++ .../no_ctps/reverse_iter_fold_impl.hpp | 295 ++ .../mpl/aux_/preprocessed/no_ctps/set.hpp | 556 +++ .../mpl/aux_/preprocessed/no_ctps/set_c.hpp | 534 +++ .../aux_/preprocessed/no_ctps/shift_left.hpp | 99 + .../aux_/preprocessed/no_ctps/shift_right.hpp | 99 + .../preprocessed/no_ctps/template_arity.hpp | 40 + .../mpl/aux_/preprocessed/no_ctps/times.hpp | 133 + .../aux_/preprocessed/no_ctps/unpack_args.hpp | 109 + .../mpl/aux_/preprocessed/no_ctps/vector.hpp | 556 +++ .../aux_/preprocessed/no_ctps/vector_c.hpp | 534 +++ .../preprocessed/no_ttp/advance_backward.hpp | 97 + .../preprocessed/no_ttp/advance_forward.hpp | 97 + .../mpl/aux_/preprocessed/no_ttp/and.hpp | 69 + .../mpl/aux_/preprocessed/no_ttp/apply.hpp | 169 + .../aux_/preprocessed/no_ttp/apply_fwd.hpp | 52 + .../aux_/preprocessed/no_ttp/apply_wrap.hpp | 84 + .../mpl/aux_/preprocessed/no_ttp/arg.hpp | 123 + .../aux_/preprocessed/no_ttp/basic_bind.hpp | 369 ++ .../mpl/aux_/preprocessed/no_ttp/bind.hpp | 466 +++ .../mpl/aux_/preprocessed/no_ttp/bind_fwd.hpp | 52 + .../mpl/aux_/preprocessed/no_ttp/bitand.hpp | 157 + .../mpl/aux_/preprocessed/no_ttp/bitor.hpp | 157 + .../mpl/aux_/preprocessed/no_ttp/bitxor.hpp | 157 + .../mpl/aux_/preprocessed/no_ttp/deque.hpp | 323 ++ .../mpl/aux_/preprocessed/no_ttp/divides.hpp | 156 + .../mpl/aux_/preprocessed/no_ttp/equal_to.hpp | 98 + .../aux_/preprocessed/no_ttp/fold_impl.hpp | 180 + .../aux_/preprocessed/no_ttp/full_lambda.hpp | 554 +++ .../mpl/aux_/preprocessed/no_ttp/greater.hpp | 98 + .../preprocessed/no_ttp/greater_equal.hpp | 98 + .../mpl/aux_/preprocessed/no_ttp/inherit.hpp | 141 + .../preprocessed/no_ttp/iter_fold_if_impl.hpp | 133 + .../preprocessed/no_ttp/iter_fold_impl.hpp | 180 + .../preprocessed/no_ttp/lambda_no_ctps.hpp | 229 + .../mpl/aux_/preprocessed/no_ttp/less.hpp | 98 + .../aux_/preprocessed/no_ttp/less_equal.hpp | 98 + .../mpl/aux_/preprocessed/no_ttp/list.hpp | 323 ++ .../mpl/aux_/preprocessed/no_ttp/list_c.hpp | 328 ++ .../mpl/aux_/preprocessed/no_ttp/map.hpp | 323 ++ .../mpl/aux_/preprocessed/no_ttp/minus.hpp | 156 + .../mpl/aux_/preprocessed/no_ttp/modulus.hpp | 111 + .../aux_/preprocessed/no_ttp/not_equal_to.hpp | 98 + .../boost/mpl/aux_/preprocessed/no_ttp/or.hpp | 69 + .../aux_/preprocessed/no_ttp/placeholders.hpp | 105 + .../mpl/aux_/preprocessed/no_ttp/plus.hpp | 156 + .../mpl/aux_/preprocessed/no_ttp/quote.hpp | 11 + .../preprocessed/no_ttp/reverse_fold_impl.hpp | 231 ++ .../no_ttp/reverse_iter_fold_impl.hpp | 231 ++ .../mpl/aux_/preprocessed/no_ttp/set.hpp | 323 ++ .../mpl/aux_/preprocessed/no_ttp/set_c.hpp | 328 ++ .../aux_/preprocessed/no_ttp/shift_left.hpp | 110 + .../aux_/preprocessed/no_ttp/shift_right.hpp | 110 + .../preprocessed/no_ttp/template_arity.hpp | 40 + .../mpl/aux_/preprocessed/no_ttp/times.hpp | 156 + .../aux_/preprocessed/no_ttp/unpack_args.hpp | 94 + .../mpl/aux_/preprocessed/no_ttp/vector.hpp | 323 ++ .../mpl/aux_/preprocessed/no_ttp/vector_c.hpp | 309 ++ .../preprocessed/plain/advance_backward.hpp | 97 + .../preprocessed/plain/advance_forward.hpp | 97 + .../boost/mpl/aux_/preprocessed/plain/and.hpp | 64 + .../mpl/aux_/preprocessed/plain/apply.hpp | 139 + .../mpl/aux_/preprocessed/plain/apply_fwd.hpp | 52 + .../aux_/preprocessed/plain/apply_wrap.hpp | 84 + .../boost/mpl/aux_/preprocessed/plain/arg.hpp | 123 + .../aux_/preprocessed/plain/basic_bind.hpp | 440 ++ .../mpl/aux_/preprocessed/plain/bind.hpp | 561 +++ .../mpl/aux_/preprocessed/plain/bind_fwd.hpp | 52 + .../mpl/aux_/preprocessed/plain/bitand.hpp | 142 + .../mpl/aux_/preprocessed/plain/bitor.hpp | 142 + .../mpl/aux_/preprocessed/plain/bitxor.hpp | 142 + .../mpl/aux_/preprocessed/plain/deque.hpp | 323 ++ .../mpl/aux_/preprocessed/plain/divides.hpp | 141 + .../mpl/aux_/preprocessed/plain/equal_to.hpp | 92 + .../mpl/aux_/preprocessed/plain/fold_impl.hpp | 180 + .../aux_/preprocessed/plain/full_lambda.hpp | 554 +++ .../mpl/aux_/preprocessed/plain/greater.hpp | 92 + .../aux_/preprocessed/plain/greater_equal.hpp | 92 + .../mpl/aux_/preprocessed/plain/inherit.hpp | 125 + .../preprocessed/plain/iter_fold_if_impl.hpp | 133 + .../preprocessed/plain/iter_fold_impl.hpp | 180 + .../preprocessed/plain/lambda_no_ctps.hpp | 228 + .../mpl/aux_/preprocessed/plain/less.hpp | 92 + .../aux_/preprocessed/plain/less_equal.hpp | 92 + .../mpl/aux_/preprocessed/plain/list.hpp | 323 ++ .../mpl/aux_/preprocessed/plain/list_c.hpp | 328 ++ .../boost/mpl/aux_/preprocessed/plain/map.hpp | 323 ++ .../mpl/aux_/preprocessed/plain/minus.hpp | 141 + .../mpl/aux_/preprocessed/plain/modulus.hpp | 99 + .../aux_/preprocessed/plain/not_equal_to.hpp | 92 + .../boost/mpl/aux_/preprocessed/plain/or.hpp | 64 + .../aux_/preprocessed/plain/placeholders.hpp | 105 + .../mpl/aux_/preprocessed/plain/plus.hpp | 141 + .../mpl/aux_/preprocessed/plain/quote.hpp | 123 + .../preprocessed/plain/reverse_fold_impl.hpp | 231 ++ .../plain/reverse_iter_fold_impl.hpp | 231 ++ .../boost/mpl/aux_/preprocessed/plain/set.hpp | 323 ++ .../mpl/aux_/preprocessed/plain/set_c.hpp | 328 ++ .../aux_/preprocessed/plain/shift_left.hpp | 97 + .../aux_/preprocessed/plain/shift_right.hpp | 97 + .../preprocessed/plain/template_arity.hpp | 11 + .../mpl/aux_/preprocessed/plain/times.hpp | 141 + .../aux_/preprocessed/plain/unpack_args.hpp | 94 + .../mpl/aux_/preprocessed/plain/vector.hpp | 323 ++ .../mpl/aux_/preprocessed/plain/vector_c.hpp | 309 ++ .../boost/mpl/aux_/preprocessor/add.hpp | 65 + .../mpl/aux_/preprocessor/def_params_tail.hpp | 105 + .../mpl/aux_/preprocessor/default_params.hpp | 67 + .../boost/mpl/aux_/preprocessor/enum.hpp | 62 + .../mpl/aux_/preprocessor/ext_params.hpp | 78 + .../mpl/aux_/preprocessor/filter_params.hpp | 28 + .../boost/mpl/aux_/preprocessor/is_seq.hpp | 54 + .../boost/mpl/aux_/preprocessor/params.hpp | 65 + .../aux_/preprocessor/partial_spec_params.hpp | 32 + .../boost/mpl/aux_/preprocessor/range.hpp | 30 + .../boost/mpl/aux_/preprocessor/repeat.hpp | 51 + .../boost/mpl/aux_/preprocessor/sub.hpp | 65 + .../mpl/aux_/preprocessor/token_equal.hpp | 56 + .../boost/mpl/aux_/preprocessor/tuple.hpp | 29 + .../include/boost/mpl/aux_/ptr_to_ref.hpp | 46 + .../include/boost/mpl/aux_/push_back_impl.hpp | 70 + .../boost/mpl/aux_/push_front_impl.hpp | 71 + .../boost/mpl/aux_/range_c/O1_size.hpp | 31 + .../include/boost/mpl/aux_/range_c/back.hpp | 34 + .../include/boost/mpl/aux_/range_c/empty.hpp | 37 + .../include/boost/mpl/aux_/range_c/front.hpp | 33 + .../boost/mpl/aux_/range_c/iterator.hpp | 106 + .../include/boost/mpl/aux_/range_c/size.hpp | 37 + .../include/boost/mpl/aux_/range_c/tag.hpp | 24 + .../boost/mpl/aux_/reverse_fold_impl.hpp | 44 + .../boost/mpl/aux_/reverse_fold_impl_body.hpp | 412 ++ .../boost/mpl/aux_/reverse_iter_fold_impl.hpp | 43 + .../boost/mpl/aux_/sequence_wrapper.hpp | 292 ++ .../boost/include/boost/mpl/aux_/shift_op.hpp | 87 + .../boost/mpl/aux_/single_element_iter.hpp | 118 + .../include/boost/mpl/aux_/size_impl.hpp | 52 + .../include/boost/mpl/aux_/sort_impl.hpp | 121 + .../include/boost/mpl/aux_/static_cast.hpp | 27 + .../include/boost/mpl/aux_/template_arity.hpp | 189 + .../boost/mpl/aux_/template_arity_fwd.hpp | 23 + .../mpl/aux_/template_arity_fwd.hpp57588 | 1 + .../boost/include/boost/mpl/aux_/test.hpp | 32 + .../include/boost/mpl/aux_/test/assert.hpp | 29 + .../include/boost/mpl/aux_/test/data.hpp | 25 + .../include/boost/mpl/aux_/test/test_case.hpp | 21 + .../boost/mpl/aux_/traits_lambda_spec.hpp | 63 + .../include/boost/mpl/aux_/transform_iter.hpp | 123 + .../include/boost/mpl/aux_/type_wrapper.hpp | 47 + .../boost/mpl/aux_/type_wrapper.hpp90669 | 1 + .../boost/include/boost/mpl/aux_/unwrap.hpp | 51 + .../include/boost/mpl/aux_/value_wknd.hpp | 89 + .../boost/mpl/aux_/value_wknd.hpp57276 | 1 + .../boost/include/boost/mpl/aux_/yes_no.hpp | 58 + .../include/boost/mpl/aux_/yes_no.hpp90670 | 1 + libraries/boost/include/boost/mpl/back.hpp | 39 + .../boost/include/boost/mpl/back_fwd.hpp | 24 + .../boost/include/boost/mpl/back_inserter.hpp | 34 + libraries/boost/include/boost/mpl/base.hpp | 35 + libraries/boost/include/boost/mpl/begin.hpp | 19 + .../boost/include/boost/mpl/begin_end.hpp | 57 + .../include/boost/mpl/begin_end.hpp74542 | 1 + .../boost/include/boost/mpl/begin_end_fwd.hpp | 27 + .../include/boost/mpl/begin_end_fwd.hpp63214 | 1 + libraries/boost/include/boost/mpl/bind.hpp | 551 +++ .../boost/include/boost/mpl/bind_fwd.hpp | 99 + libraries/boost/include/boost/mpl/bitand.hpp | 45 + libraries/boost/include/boost/mpl/bitor.hpp | 45 + libraries/boost/include/boost/mpl/bitwise.hpp | 24 + libraries/boost/include/boost/mpl/bitxor.hpp | 23 + libraries/boost/include/boost/mpl/bool.hpp | 39 + .../boost/include/boost/mpl/bool_fwd.hpp | 33 + libraries/boost/include/boost/mpl/char.hpp | 22 + .../boost/include/boost/mpl/char_fwd.hpp | 27 + libraries/boost/include/boost/mpl/clear.hpp | 39 + .../boost/include/boost/mpl/clear_fwd.hpp | 24 + .../boost/include/boost/mpl/comparison.hpp | 24 + .../boost/include/boost/mpl/contains.hpp | 41 + .../boost/include/boost/mpl/contains_fwd.hpp | 25 + libraries/boost/include/boost/mpl/copy.hpp | 58 + libraries/boost/include/boost/mpl/copy_if.hpp | 96 + libraries/boost/include/boost/mpl/count.hpp | 40 + .../boost/include/boost/mpl/count_fwd.hpp | 24 + .../boost/include/boost/mpl/count_if.hpp | 79 + libraries/boost/include/boost/mpl/deque.hpp | 58 + libraries/boost/include/boost/mpl/deref.hpp | 41 + .../boost/include/boost/mpl/deref.hpp333875 | 1 + .../boost/include/boost/mpl/distance.hpp | 78 + .../include/boost/mpl/distance.hpp367028 | 1 + .../boost/include/boost/mpl/distance_fwd.hpp | 28 + .../include/boost/mpl/distance_fwd.hpp367029 | 1 + libraries/boost/include/boost/mpl/divides.hpp | 21 + libraries/boost/include/boost/mpl/empty.hpp | 39 + .../boost/include/boost/mpl/empty_base.hpp | 63 + .../include/boost/mpl/empty_base.hpp56632 | 2 + .../boost/include/boost/mpl/empty_fwd.hpp | 24 + .../include/boost/mpl/empty_sequence.hpp | 43 + libraries/boost/include/boost/mpl/end.hpp | 19 + libraries/boost/include/boost/mpl/equal.hpp | 112 + .../boost/include/boost/mpl/equal_to.hpp | 21 + libraries/boost/include/boost/mpl/erase.hpp | 42 + .../boost/include/boost/mpl/erase_fwd.hpp | 24 + .../boost/include/boost/mpl/erase_key.hpp | 41 + .../boost/include/boost/mpl/erase_key_fwd.hpp | 24 + libraries/boost/include/boost/mpl/eval_if.hpp | 71 + .../boost/include/boost/mpl/eval_if.hpp85327 | 1 + .../boost/include/boost/mpl/filter_view.hpp | 46 + libraries/boost/include/boost/mpl/find.hpp | 38 + libraries/boost/include/boost/mpl/find_if.hpp | 50 + libraries/boost/include/boost/mpl/fold.hpp | 48 + .../boost/include/boost/mpl/fold.hpp314090 | 1 + .../boost/include/boost/mpl/for_each.hpp | 123 + libraries/boost/include/boost/mpl/front.hpp | 39 + .../boost/include/boost/mpl/front_fwd.hpp | 24 + .../include/boost/mpl/front_inserter.hpp | 33 + libraries/boost/include/boost/mpl/get_tag.hpp | 26 + libraries/boost/include/boost/mpl/greater.hpp | 21 + .../boost/include/boost/mpl/greater_equal.hpp | 21 + libraries/boost/include/boost/mpl/has_key.hpp | 41 + .../boost/include/boost/mpl/has_key_fwd.hpp | 25 + libraries/boost/include/boost/mpl/has_xxx.hpp | 647 +++ .../boost/include/boost/mpl/identity.hpp | 45 + .../include/boost/mpl/identity.hpp107074 | 1 + libraries/boost/include/boost/mpl/if.hpp | 135 + libraries/boost/include/boost/mpl/if.hpp57275 | 1 + .../boost/include/boost/mpl/index_if.hpp | 60 + .../boost/include/boost/mpl/index_of.hpp | 39 + libraries/boost/include/boost/mpl/inherit.hpp | 229 + .../include/boost/mpl/inherit_linearly.hpp | 39 + libraries/boost/include/boost/mpl/insert.hpp | 41 + .../boost/include/boost/mpl/insert_fwd.hpp | 24 + .../boost/include/boost/mpl/insert_range.hpp | 41 + .../include/boost/mpl/insert_range_fwd.hpp | 24 + .../boost/include/boost/mpl/inserter.hpp | 32 + libraries/boost/include/boost/mpl/int.hpp | 22 + libraries/boost/include/boost/mpl/int_fwd.hpp | 27 + .../boost/include/boost/mpl/integral_c.hpp | 51 + .../include/boost/mpl/integral_c_fwd.hpp | 32 + .../include/boost/mpl/integral_c_tag.hpp | 26 + .../include/boost/mpl/is_placeholder.hpp | 67 + .../boost/include/boost/mpl/is_sequence.hpp | 112 + .../include/boost/mpl/is_sequence.hpp63249 | 1 + .../boost/include/boost/mpl/iter_fold.hpp | 49 + .../include/boost/mpl/iter_fold.hpp367030 | 1 + .../boost/include/boost/mpl/iter_fold_if.hpp | 117 + .../include/boost/mpl/iterator_category.hpp | 35 + .../include/boost/mpl/iterator_range.hpp | 42 + .../boost/mpl/iterator_range.hpp372300 | 1 + .../boost/include/boost/mpl/iterator_tags.hpp | 27 + .../include/boost/mpl/iterator_tags.hpp383261 | 1 + .../boost/include/boost/mpl/joint_view.hpp | 65 + .../boost/include/boost/mpl/key_type.hpp | 42 + .../boost/include/boost/mpl/key_type_fwd.hpp | 25 + libraries/boost/include/boost/mpl/lambda.hpp | 29 + .../boost/include/boost/mpl/lambda_fwd.hpp | 57 + .../include/boost/mpl/lambda_fwd.hpp57360 | 1 + libraries/boost/include/boost/mpl/less.hpp | 21 + .../boost/include/boost/mpl/less_equal.hpp | 21 + .../boost/include/boost/mpl/limits/arity.hpp | 21 + .../boost/include/boost/mpl/limits/list.hpp | 21 + .../boost/include/boost/mpl/limits/map.hpp | 21 + .../boost/include/boost/mpl/limits/set.hpp | 21 + .../boost/include/boost/mpl/limits/string.hpp | 21 + .../include/boost/mpl/limits/unrolling.hpp | 21 + .../boost/include/boost/mpl/limits/vector.hpp | 21 + libraries/boost/include/boost/mpl/list.hpp | 57 + .../include/boost/mpl/list/aux_/O1_size.hpp | 33 + .../include/boost/mpl/list/aux_/begin_end.hpp | 44 + .../include/boost/mpl/list/aux_/clear.hpp | 34 + .../include/boost/mpl/list/aux_/empty.hpp | 34 + .../include/boost/mpl/list/aux_/front.hpp | 33 + .../mpl/list/aux_/include_preprocessed.hpp | 35 + .../include/boost/mpl/list/aux_/item.hpp | 55 + .../include/boost/mpl/list/aux_/iterator.hpp | 76 + .../include/boost/mpl/list/aux_/numbered.hpp | 68 + .../boost/mpl/list/aux_/numbered_c.hpp | 71 + .../include/boost/mpl/list/aux_/pop_front.hpp | 34 + .../list/aux_/preprocessed/plain/list10.hpp | 149 + .../list/aux_/preprocessed/plain/list10_c.hpp | 164 + .../list/aux_/preprocessed/plain/list20.hpp | 169 + .../list/aux_/preprocessed/plain/list20_c.hpp | 173 + .../list/aux_/preprocessed/plain/list30.hpp | 189 + .../list/aux_/preprocessed/plain/list30_c.hpp | 183 + .../list/aux_/preprocessed/plain/list40.hpp | 209 + .../list/aux_/preprocessed/plain/list40_c.hpp | 193 + .../list/aux_/preprocessed/plain/list50.hpp | 229 + .../list/aux_/preprocessed/plain/list50_c.hpp | 203 + .../include/boost/mpl/list/aux_/push_back.hpp | 36 + .../boost/mpl/list/aux_/push_front.hpp | 39 + .../include/boost/mpl/list/aux_/size.hpp | 33 + .../boost/include/boost/mpl/list/aux_/tag.hpp | 24 + .../boost/include/boost/mpl/list/list0.hpp | 42 + .../boost/include/boost/mpl/list/list0_c.hpp | 31 + .../boost/include/boost/mpl/list/list10.hpp | 43 + .../boost/include/boost/mpl/list/list10_c.hpp | 43 + .../boost/include/boost/mpl/list/list20.hpp | 43 + .../boost/include/boost/mpl/list/list20_c.hpp | 43 + .../boost/include/boost/mpl/list/list30.hpp | 43 + .../boost/include/boost/mpl/list/list30_c.hpp | 43 + .../boost/include/boost/mpl/list/list40.hpp | 43 + .../boost/include/boost/mpl/list/list40_c.hpp | 43 + .../boost/include/boost/mpl/list/list50.hpp | 43 + .../boost/include/boost/mpl/list/list50_c.hpp | 43 + libraries/boost/include/boost/mpl/list_c.hpp | 60 + libraries/boost/include/boost/mpl/logical.hpp | 21 + libraries/boost/include/boost/mpl/long.hpp | 22 + .../boost/include/boost/mpl/long_fwd.hpp | 27 + .../boost/include/boost/mpl/lower_bound.hpp | 143 + libraries/boost/include/boost/mpl/map.hpp | 57 + .../include/boost/mpl/map/aux_/at_impl.hpp | 144 + .../boost/mpl/map/aux_/begin_end_impl.hpp | 50 + .../include/boost/mpl/map/aux_/clear_impl.hpp | 35 + .../boost/mpl/map/aux_/contains_impl.hpp | 43 + .../include/boost/mpl/map/aux_/empty_impl.hpp | 34 + .../include/boost/mpl/map/aux_/erase_impl.hpp | 41 + .../boost/mpl/map/aux_/erase_key_impl.hpp | 53 + .../boost/mpl/map/aux_/has_key_impl.hpp | 44 + .../mpl/map/aux_/include_preprocessed.hpp | 53 + .../boost/mpl/map/aux_/insert_impl.hpp | 72 + .../boost/mpl/map/aux_/insert_range_impl.hpp | 41 + .../boost/include/boost/mpl/map/aux_/item.hpp | 141 + .../include/boost/mpl/map/aux_/iterator.hpp | 169 + .../boost/mpl/map/aux_/key_type_impl.hpp | 36 + .../boost/include/boost/mpl/map/aux_/map0.hpp | 74 + .../include/boost/mpl/map/aux_/numbered.hpp | 110 + .../map/aux_/preprocessed/no_ctps/map10.hpp | 350 ++ .../map/aux_/preprocessed/no_ctps/map20.hpp | 370 ++ .../map/aux_/preprocessed/no_ctps/map30.hpp | 390 ++ .../map/aux_/preprocessed/no_ctps/map40.hpp | 410 ++ .../map/aux_/preprocessed/no_ctps/map50.hpp | 430 ++ .../mpl/map/aux_/preprocessed/plain/map10.hpp | 290 ++ .../mpl/map/aux_/preprocessed/plain/map20.hpp | 310 ++ .../mpl/map/aux_/preprocessed/plain/map30.hpp | 330 ++ .../mpl/map/aux_/preprocessed/plain/map40.hpp | 350 ++ .../mpl/map/aux_/preprocessed/plain/map50.hpp | 370 ++ .../aux_/preprocessed/typeof_based/map10.hpp | 150 + .../aux_/preprocessed/typeof_based/map20.hpp | 170 + .../aux_/preprocessed/typeof_based/map30.hpp | 190 + .../aux_/preprocessed/typeof_based/map40.hpp | 210 + .../aux_/preprocessed/typeof_based/map50.hpp | 230 ++ .../include/boost/mpl/map/aux_/size_impl.hpp | 33 + .../boost/include/boost/mpl/map/aux_/tag.hpp | 24 + .../boost/mpl/map/aux_/value_type_impl.hpp | 36 + .../boost/include/boost/mpl/map/map0.hpp | 37 + .../boost/include/boost/mpl/map/map10.hpp | 44 + .../boost/include/boost/mpl/map/map20.hpp | 44 + .../boost/include/boost/mpl/map/map30.hpp | 44 + .../boost/include/boost/mpl/map/map40.hpp | 44 + .../boost/include/boost/mpl/map/map50.hpp | 44 + .../boost/include/boost/mpl/math/fixed_c.hpp | 36 + .../boost/include/boost/mpl/math/is_even.hpp | 54 + .../include/boost/mpl/math/rational_c.hpp | 37 + libraries/boost/include/boost/mpl/max.hpp | 19 + .../boost/include/boost/mpl/max_element.hpp | 72 + libraries/boost/include/boost/mpl/min.hpp | 19 + .../boost/include/boost/mpl/min_element.hpp | 40 + libraries/boost/include/boost/mpl/min_max.hpp | 46 + libraries/boost/include/boost/mpl/minus.hpp | 21 + libraries/boost/include/boost/mpl/modulus.hpp | 22 + .../boost/include/boost/mpl/multiplies.hpp | 53 + .../boost/mpl/multiset/aux_/count_impl.hpp | 82 + .../boost/mpl/multiset/aux_/insert_impl.hpp | 34 + .../include/boost/mpl/multiset/aux_/item.hpp | 114 + .../boost/mpl/multiset/aux_/multiset0.hpp | 34 + .../include/boost/mpl/multiset/aux_/tag.hpp | 23 + .../include/boost/mpl/multiset/multiset0.hpp | 36 + libraries/boost/include/boost/mpl/negate.hpp | 81 + .../boost/include/boost/mpl/negate.hpp356109 | 1 + libraries/boost/include/boost/mpl/next.hpp | 19 + .../boost/include/boost/mpl/next_prior.hpp | 49 + .../include/boost/mpl/next_prior.hpp297296 | 1 + libraries/boost/include/boost/mpl/not.hpp | 51 + .../boost/include/boost/mpl/not.hpp63250 | 1 + .../boost/include/boost/mpl/not_equal_to.hpp | 21 + .../boost/include/boost/mpl/numeric_cast.hpp | 41 + .../include/boost/mpl/numeric_cast.hpp308155 | 1 + libraries/boost/include/boost/mpl/or.hpp | 61 + libraries/boost/include/boost/mpl/order.hpp | 41 + .../boost/include/boost/mpl/order_fwd.hpp | 25 + libraries/boost/include/boost/mpl/pair.hpp | 70 + .../boost/include/boost/mpl/pair_view.hpp | 169 + .../boost/include/boost/mpl/partition.hpp | 53 + .../boost/include/boost/mpl/placeholders.hpp | 100 + libraries/boost/include/boost/mpl/plus.hpp | 21 + .../boost/include/boost/mpl/pop_back.hpp | 39 + .../boost/include/boost/mpl/pop_back_fwd.hpp | 24 + .../boost/include/boost/mpl/pop_front.hpp | 39 + .../boost/include/boost/mpl/pop_front_fwd.hpp | 24 + libraries/boost/include/boost/mpl/print.hpp | 78 + libraries/boost/include/boost/mpl/prior.hpp | 19 + libraries/boost/include/boost/mpl/protect.hpp | 55 + .../boost/include/boost/mpl/protect.hpp320027 | 1 + .../boost/include/boost/mpl/push_back.hpp | 53 + .../boost/include/boost/mpl/push_back_fwd.hpp | 24 + .../boost/include/boost/mpl/push_front.hpp | 52 + .../include/boost/mpl/push_front_fwd.hpp | 24 + libraries/boost/include/boost/mpl/quote.hpp | 151 + libraries/boost/include/boost/mpl/range_c.hpp | 48 + libraries/boost/include/boost/mpl/remove.hpp | 52 + .../boost/include/boost/mpl/remove_if.hpp | 83 + libraries/boost/include/boost/mpl/replace.hpp | 55 + .../boost/include/boost/mpl/replace_if.hpp | 88 + libraries/boost/include/boost/mpl/reverse.hpp | 38 + .../boost/include/boost/mpl/reverse_fold.hpp | 50 + .../include/boost/mpl/reverse_iter_fold.hpp | 56 + libraries/boost/include/boost/mpl/same_as.hpp | 55 + .../boost/include/boost/mpl/sequence_tag.hpp | 124 + .../include/boost/mpl/sequence_tag.hpp90900 | 1 + .../include/boost/mpl/sequence_tag_fwd.hpp | 26 + .../boost/mpl/sequence_tag_fwd.hpp74544 | 1 + libraries/boost/include/boost/mpl/set.hpp | 57 + .../include/boost/mpl/set/aux_/at_impl.hpp | 40 + .../boost/mpl/set/aux_/begin_end_impl.hpp | 43 + .../include/boost/mpl/set/aux_/clear_impl.hpp | 35 + .../include/boost/mpl/set/aux_/empty_impl.hpp | 34 + .../include/boost/mpl/set/aux_/erase_impl.hpp | 41 + .../boost/mpl/set/aux_/erase_key_impl.hpp | 53 + .../boost/mpl/set/aux_/has_key_impl.hpp | 60 + .../mpl/set/aux_/include_preprocessed.hpp | 42 + .../boost/mpl/set/aux_/insert_impl.hpp | 65 + .../boost/mpl/set/aux_/insert_range_impl.hpp | 41 + .../boost/include/boost/mpl/set/aux_/item.hpp | 82 + .../include/boost/mpl/set/aux_/iterator.hpp | 98 + .../boost/mpl/set/aux_/key_type_impl.hpp | 34 + .../include/boost/mpl/set/aux_/numbered.hpp | 48 + .../include/boost/mpl/set/aux_/numbered_c.hpp | 48 + .../mpl/set/aux_/preprocessed/plain/set10.hpp | 140 + .../set/aux_/preprocessed/plain/set10_c.hpp | 145 + .../mpl/set/aux_/preprocessed/plain/set20.hpp | 168 + .../set/aux_/preprocessed/plain/set20_c.hpp | 154 + .../mpl/set/aux_/preprocessed/plain/set30.hpp | 195 + .../set/aux_/preprocessed/plain/set30_c.hpp | 164 + .../mpl/set/aux_/preprocessed/plain/set40.hpp | 221 + .../set/aux_/preprocessed/plain/set40_c.hpp | 174 + .../mpl/set/aux_/preprocessed/plain/set50.hpp | 250 ++ .../set/aux_/preprocessed/plain/set50_c.hpp | 184 + .../boost/include/boost/mpl/set/aux_/set0.hpp | 69 + .../include/boost/mpl/set/aux_/size_impl.hpp | 33 + .../boost/include/boost/mpl/set/aux_/tag.hpp | 24 + .../boost/mpl/set/aux_/value_type_impl.hpp | 34 + .../boost/include/boost/mpl/set/set0.hpp | 36 + .../boost/include/boost/mpl/set/set0_c.hpp | 32 + .../boost/include/boost/mpl/set/set10.hpp | 44 + .../boost/include/boost/mpl/set/set10_c.hpp | 45 + .../boost/include/boost/mpl/set/set20.hpp | 44 + .../boost/include/boost/mpl/set/set20_c.hpp | 45 + .../boost/include/boost/mpl/set/set30.hpp | 44 + .../boost/include/boost/mpl/set/set30_c.hpp | 45 + .../boost/include/boost/mpl/set/set40.hpp | 44 + .../boost/include/boost/mpl/set/set40_c.hpp | 45 + .../boost/include/boost/mpl/set/set50.hpp | 44 + .../boost/include/boost/mpl/set/set50_c.hpp | 45 + libraries/boost/include/boost/mpl/set_c.hpp | 60 + .../boost/include/boost/mpl/shift_left.hpp | 22 + .../boost/include/boost/mpl/shift_right.hpp | 22 + .../boost/include/boost/mpl/single_view.hpp | 38 + libraries/boost/include/boost/mpl/size.hpp | 42 + .../boost/include/boost/mpl/size_fwd.hpp | 24 + libraries/boost/include/boost/mpl/size_t.hpp | 25 + .../boost/include/boost/mpl/size_t_fwd.hpp | 28 + libraries/boost/include/boost/mpl/sizeof.hpp | 36 + libraries/boost/include/boost/mpl/sort.hpp | 27 + .../include/boost/mpl/stable_partition.hpp | 75 + libraries/boost/include/boost/mpl/string.hpp | 607 +++ libraries/boost/include/boost/mpl/switch.hpp | 49 + libraries/boost/include/boost/mpl/tag.hpp | 52 + .../boost/include/boost/mpl/tag.hpp308253 | 1 + libraries/boost/include/boost/mpl/times.hpp | 21 + .../boost/include/boost/mpl/transform.hpp | 145 + .../include/boost/mpl/transform_view.hpp | 46 + libraries/boost/include/boost/mpl/unique.hpp | 85 + .../boost/include/boost/mpl/unpack_args.hpp | 150 + .../boost/include/boost/mpl/upper_bound.hpp | 141 + .../boost/include/boost/mpl/value_type.hpp | 42 + .../include/boost/mpl/value_type_fwd.hpp | 25 + libraries/boost/include/boost/mpl/vector.hpp | 57 + .../include/boost/mpl/vector/aux_/O1_size.hpp | 56 + .../include/boost/mpl/vector/aux_/at.hpp | 116 + .../include/boost/mpl/vector/aux_/back.hpp | 59 + .../boost/mpl/vector/aux_/begin_end.hpp | 49 + .../include/boost/mpl/vector/aux_/clear.hpp | 55 + .../include/boost/mpl/vector/aux_/empty.hpp | 68 + .../include/boost/mpl/vector/aux_/front.hpp | 56 + .../mpl/vector/aux_/include_preprocessed.hpp | 55 + .../include/boost/mpl/vector/aux_/item.hpp | 103 + .../boost/mpl/vector/aux_/iterator.hpp | 130 + .../boost/mpl/vector/aux_/numbered.hpp | 218 + .../boost/mpl/vector/aux_/numbered_c.hpp | 77 + .../boost/mpl/vector/aux_/pop_back.hpp | 40 + .../boost/mpl/vector/aux_/pop_front.hpp | 40 + .../aux_/preprocessed/no_ctps/vector10.hpp | 1528 +++++++ .../aux_/preprocessed/no_ctps/vector10_c.hpp | 149 + .../aux_/preprocessed/no_ctps/vector20.hpp | 1804 ++++++++ .../aux_/preprocessed/no_ctps/vector20_c.hpp | 195 + .../aux_/preprocessed/no_ctps/vector30.hpp | 2124 ++++++++++ .../aux_/preprocessed/no_ctps/vector30_c.hpp | 238 ++ .../aux_/preprocessed/no_ctps/vector40.hpp | 2444 +++++++++++ .../aux_/preprocessed/no_ctps/vector40_c.hpp | 281 ++ .../aux_/preprocessed/no_ctps/vector50.hpp | 2764 +++++++++++++ .../aux_/preprocessed/no_ctps/vector50_c.hpp | 325 ++ .../aux_/preprocessed/plain/vector10.hpp | 829 ++++ .../aux_/preprocessed/plain/vector10_c.hpp | 149 + .../aux_/preprocessed/plain/vector20.hpp | 1144 +++++ .../aux_/preprocessed/plain/vector20_c.hpp | 195 + .../aux_/preprocessed/plain/vector30.hpp | 1464 +++++++ .../aux_/preprocessed/plain/vector30_c.hpp | 238 ++ .../aux_/preprocessed/plain/vector40.hpp | 1784 ++++++++ .../aux_/preprocessed/plain/vector40_c.hpp | 281 ++ .../aux_/preprocessed/plain/vector50.hpp | 2104 ++++++++++ .../aux_/preprocessed/plain/vector50_c.hpp | 325 ++ .../preprocessed/typeof_based/vector10.hpp | 139 + .../preprocessed/typeof_based/vector10_c.hpp | 154 + .../preprocessed/typeof_based/vector20.hpp | 159 + .../preprocessed/typeof_based/vector20_c.hpp | 163 + .../preprocessed/typeof_based/vector30.hpp | 179 + .../preprocessed/typeof_based/vector30_c.hpp | 173 + .../preprocessed/typeof_based/vector40.hpp | 199 + .../preprocessed/typeof_based/vector40_c.hpp | 183 + .../preprocessed/typeof_based/vector50.hpp | 219 + .../preprocessed/typeof_based/vector50_c.hpp | 193 + .../boost/mpl/vector/aux_/push_back.hpp | 40 + .../boost/mpl/vector/aux_/push_front.hpp | 40 + .../include/boost/mpl/vector/aux_/size.hpp | 49 + .../include/boost/mpl/vector/aux_/tag.hpp | 32 + .../include/boost/mpl/vector/aux_/vector0.hpp | 52 + .../include/boost/mpl/vector/vector0.hpp | 34 + .../include/boost/mpl/vector/vector0_c.hpp | 31 + .../include/boost/mpl/vector/vector10.hpp | 45 + .../include/boost/mpl/vector/vector10_c.hpp | 46 + .../include/boost/mpl/vector/vector20.hpp | 45 + .../include/boost/mpl/vector/vector20_c.hpp | 46 + .../include/boost/mpl/vector/vector30.hpp | 45 + .../include/boost/mpl/vector/vector30_c.hpp | 47 + .../include/boost/mpl/vector/vector40.hpp | 45 + .../include/boost/mpl/vector/vector40_c.hpp | 46 + .../include/boost/mpl/vector/vector50.hpp | 45 + .../include/boost/mpl/vector/vector50_c.hpp | 46 + .../boost/include/boost/mpl/vector_c.hpp | 61 + libraries/boost/include/boost/mpl/void.hpp | 76 + .../boost/include/boost/mpl/void.hpp74545 | 1 + .../boost/include/boost/mpl/void_fwd.hpp | 26 + .../boost/include/boost/mpl/zip_view.hpp | 65 + .../cast_to_layout_compatible.hpp410352 | 1 + .../pfr/detail/core14_loophole.hpp410351 | 5 + .../boost/pfr/detail/detectors.hpp410378 | 1 + .../boost/pfr/detail/fields_count.hpp410345 | 12 + .../pfr/detail/for_each_field_impl.hpp410342 | 3 + .../boost/pfr/detail/functional.hpp410370 | 1 + .../include/boost/pfr/detail/io.hpp410380 | 1 + .../make_flat_tuple_of_references.hpp410363 | 3 + .../pfr/detail/offset_based_getter.hpp410361 | 4 + .../boost/pfr/detail/rvalue_t.hpp410343 | 1 + .../boost/pfr/detail/sequence_tuple.hpp410340 | 8 + .../boost/pfr/detail/stdtuple.hpp410341 | 1 + .../include/boost/pfr/flat/core.hpp412710 | 1 + .../include/boost/pfr/flat/functors.hpp412712 | 1 + .../boost/include/boost/pfr/flat/io.hpp412714 | 1 + .../include/boost/pfr/flat/ops.hpp412713 | 1 + .../boost/pfr/flat/tuple_size.hpp412711 | 1 + .../include/boost/pfr/precise/core.hpp410337 | 3 + .../boost/pfr/precise/functors.hpp410369 | 1 + .../include/boost/pfr/precise/io.hpp410379 | 1 + .../include/boost/pfr/precise/ops.hpp410377 | 1 + .../boost/pfr/precise/tuple_size.hpp410344 | 1 + .../boost/include/boost/preprocessor.hpp | 19 + .../include/boost/preprocessor/arithmetic.hpp | 25 + .../boost/preprocessor/arithmetic/add.hpp | 51 + .../boost/preprocessor/arithmetic/dec.hpp | 289 ++ .../arithmetic/detail/div_base.hpp | 61 + .../boost/preprocessor/arithmetic/div.hpp | 39 + .../boost/preprocessor/arithmetic/inc.hpp | 288 ++ .../boost/preprocessor/arithmetic/mod.hpp | 39 + .../boost/preprocessor/arithmetic/mul.hpp | 53 + .../boost/preprocessor/arithmetic/sub.hpp | 50 + .../include/boost/preprocessor/array.hpp | 32 + .../include/boost/preprocessor/array/data.hpp | 28 + .../preprocessor/array/detail/get_data.hpp | 55 + .../include/boost/preprocessor/array/elem.hpp | 29 + .../include/boost/preprocessor/array/enum.hpp | 33 + .../boost/preprocessor/array/insert.hpp | 55 + .../boost/preprocessor/array/pop_back.hpp | 37 + .../boost/preprocessor/array/pop_front.hpp | 38 + .../boost/preprocessor/array/push_back.hpp | 35 + .../boost/preprocessor/array/push_front.hpp | 35 + .../boost/preprocessor/array/remove.hpp | 54 + .../boost/preprocessor/array/replace.hpp | 49 + .../boost/preprocessor/array/reverse.hpp | 29 + .../include/boost/preprocessor/array/size.hpp | 28 + .../boost/preprocessor/array/to_list.hpp | 47 + .../boost/preprocessor/array/to_seq.hpp | 46 + .../boost/preprocessor/array/to_tuple.hpp | 33 + .../include/boost/preprocessor/assert_msg.hpp | 17 + .../boost/include/boost/preprocessor/cat.hpp | 35 + .../include/boost/preprocessor/comma.hpp | 17 + .../include/boost/preprocessor/comma_if.hpp | 17 + .../include/boost/preprocessor/comparison.hpp | 24 + .../boost/preprocessor/comparison/equal.hpp | 34 + .../boost/preprocessor/comparison/greater.hpp | 38 + .../preprocessor/comparison/greater_equal.hpp | 38 + .../boost/preprocessor/comparison/less.hpp | 46 + .../preprocessor/comparison/less_equal.hpp | 39 + .../preprocessor/comparison/not_equal.hpp | 814 ++++ .../boost/preprocessor/config/config.hpp | 106 + .../boost/preprocessor/config/limits.hpp | 30 + .../include/boost/preprocessor/control.hpp | 22 + .../boost/preprocessor/control/deduce_d.hpp | 22 + .../preprocessor/control/detail/dmc/while.hpp | 536 +++ .../preprocessor/control/detail/edg/while.hpp | 534 +++ .../control/detail/msvc/while.hpp | 277 ++ .../preprocessor/control/detail/while.hpp | 536 +++ .../boost/preprocessor/control/expr_if.hpp | 30 + .../boost/preprocessor/control/expr_iif.hpp | 31 + .../include/boost/preprocessor/control/if.hpp | 30 + .../boost/preprocessor/control/iif.hpp | 34 + .../boost/preprocessor/control/while.hpp | 312 ++ .../include/boost/preprocessor/debug.hpp | 18 + .../boost/preprocessor/debug/assert.hpp | 44 + .../boost/preprocessor/debug/error.hpp | 33 + .../include/boost/preprocessor/debug/line.hpp | 35 + .../boost/include/boost/preprocessor/dec.hpp | 17 + .../boost/preprocessor/detail/auto_rec.hpp | 293 ++ .../boost/preprocessor/detail/check.hpp | 48 + .../preprocessor/detail/dmc/auto_rec.hpp | 286 ++ .../boost/preprocessor/detail/is_binary.hpp | 30 + .../boost/preprocessor/detail/is_nullary.hpp | 30 + .../boost/preprocessor/detail/is_unary.hpp | 30 + .../boost/preprocessor/detail/null.hpp | 17 + .../boost/preprocessor/detail/split.hpp | 35 + .../include/boost/preprocessor/empty.hpp | 17 + .../boost/include/boost/preprocessor/enum.hpp | 17 + .../boost/preprocessor/enum_params.hpp | 17 + .../enum_params_with_a_default.hpp | 17 + .../enum_params_with_defaults.hpp | 17 + .../boost/preprocessor/enum_shifted.hpp | 17 + .../preprocessor/enum_shifted_params.hpp | 17 + .../include/boost/preprocessor/expand.hpp | 17 + .../include/boost/preprocessor/expr_if.hpp | 17 + .../include/boost/preprocessor/facilities.hpp | 23 + .../boost/preprocessor/facilities/apply.hpp | 34 + .../facilities/detail/is_empty.hpp | 55 + .../boost/preprocessor/facilities/empty.hpp | 23 + .../boost/preprocessor/facilities/expand.hpp | 28 + .../preprocessor/facilities/identity.hpp | 27 + .../preprocessor/facilities/intercept.hpp | 277 ++ .../boost/preprocessor/facilities/is_1.hpp | 23 + .../preprocessor/facilities/is_empty.hpp | 56 + .../preprocessor/facilities/is_empty_or_1.hpp | 31 + .../facilities/is_empty_variadic.hpp | 57 + .../preprocessor/facilities/overload.hpp | 25 + .../boost/include/boost/preprocessor/for.hpp | 17 + .../include/boost/preprocessor/identity.hpp | 17 + .../boost/include/boost/preprocessor/if.hpp | 17 + .../boost/include/boost/preprocessor/inc.hpp | 17 + .../include/boost/preprocessor/iterate.hpp | 17 + .../include/boost/preprocessor/iteration.hpp | 19 + .../iteration/detail/bounds/lower1.hpp | 99 + .../iteration/detail/bounds/lower2.hpp | 99 + .../iteration/detail/bounds/lower3.hpp | 99 + .../iteration/detail/bounds/lower4.hpp | 99 + .../iteration/detail/bounds/lower5.hpp | 99 + .../iteration/detail/bounds/upper1.hpp | 99 + .../iteration/detail/bounds/upper2.hpp | 99 + .../iteration/detail/bounds/upper3.hpp | 99 + .../iteration/detail/bounds/upper4.hpp | 99 + .../iteration/detail/bounds/upper5.hpp | 99 + .../preprocessor/iteration/detail/finish.hpp | 99 + .../iteration/detail/iter/forward1.hpp | 1342 ++++++ .../iteration/detail/iter/forward2.hpp | 1338 ++++++ .../iteration/detail/iter/forward3.hpp | 1338 ++++++ .../iteration/detail/iter/forward4.hpp | 1338 ++++++ .../iteration/detail/iter/forward5.hpp | 1338 ++++++ .../iteration/detail/iter/reverse1.hpp | 1296 ++++++ .../iteration/detail/iter/reverse2.hpp | 1296 ++++++ .../iteration/detail/iter/reverse3.hpp | 1296 ++++++ .../iteration/detail/iter/reverse4.hpp | 1296 ++++++ .../iteration/detail/iter/reverse5.hpp | 1296 ++++++ .../preprocessor/iteration/detail/local.hpp | 812 ++++ .../preprocessor/iteration/detail/rlocal.hpp | 782 ++++ .../preprocessor/iteration/detail/self.hpp | 21 + .../preprocessor/iteration/detail/start.hpp | 99 + .../boost/preprocessor/iteration/iterate.hpp | 82 + .../boost/preprocessor/iteration/local.hpp | 26 + .../boost/preprocessor/iteration/self.hpp | 19 + .../include/boost/preprocessor/library.hpp | 37 + .../include/boost/preprocessor/limits.hpp | 17 + .../boost/include/boost/preprocessor/list.hpp | 37 + .../include/boost/preprocessor/list/adt.hpp | 73 + .../boost/preprocessor/list/append.hpp | 40 + .../include/boost/preprocessor/list/at.hpp | 39 + .../include/boost/preprocessor/list/cat.hpp | 42 + .../list/detail/dmc/fold_left.hpp | 279 ++ .../list/detail/edg/fold_left.hpp | 536 +++ .../list/detail/edg/fold_right.hpp | 794 ++++ .../preprocessor/list/detail/fold_left.hpp | 279 ++ .../preprocessor/list/detail/fold_right.hpp | 277 ++ .../include/boost/preprocessor/list/enum.hpp | 41 + .../boost/preprocessor/list/filter.hpp | 54 + .../boost/preprocessor/list/first_n.hpp | 58 + .../boost/preprocessor/list/fold_left.hpp | 303 ++ .../boost/preprocessor/list/fold_right.hpp | 40 + .../boost/preprocessor/list/for_each.hpp | 49 + .../boost/preprocessor/list/for_each_i.hpp | 65 + .../preprocessor/list/for_each_product.hpp | 141 + .../boost/preprocessor/list/rest_n.hpp | 55 + .../boost/preprocessor/list/reverse.hpp | 40 + .../include/boost/preprocessor/list/size.hpp | 58 + .../boost/preprocessor/list/to_array.hpp | 155 + .../boost/preprocessor/list/to_seq.hpp | 32 + .../boost/preprocessor/list/to_tuple.hpp | 61 + .../boost/preprocessor/list/transform.hpp | 49 + .../include/boost/preprocessor/logical.hpp | 29 + .../boost/preprocessor/logical/and.hpp | 30 + .../boost/preprocessor/logical/bitand.hpp | 38 + .../boost/preprocessor/logical/bitnor.hpp | 38 + .../boost/preprocessor/logical/bitor.hpp | 38 + .../boost/preprocessor/logical/bitxor.hpp | 38 + .../boost/preprocessor/logical/bool.hpp | 288 ++ .../boost/preprocessor/logical/compl.hpp | 36 + .../boost/preprocessor/logical/nor.hpp | 30 + .../boost/preprocessor/logical/not.hpp | 30 + .../include/boost/preprocessor/logical/or.hpp | 30 + .../boost/preprocessor/logical/xor.hpp | 30 + .../boost/include/boost/preprocessor/max.hpp | 17 + .../boost/include/boost/preprocessor/min.hpp | 17 + .../boost/preprocessor/punctuation.hpp | 22 + .../boost/preprocessor/punctuation/comma.hpp | 21 + .../preprocessor/punctuation/comma_if.hpp | 31 + .../punctuation/detail/is_begin_parens.hpp | 48 + .../punctuation/is_begin_parens.hpp | 51 + .../boost/preprocessor/punctuation/paren.hpp | 23 + .../preprocessor/punctuation/paren_if.hpp | 38 + .../punctuation/remove_parens.hpp | 39 + .../include/boost/preprocessor/repeat.hpp | 17 + .../include/boost/preprocessor/repeat_2nd.hpp | 17 + .../include/boost/preprocessor/repeat_3rd.hpp | 17 + .../boost/preprocessor/repeat_from_to.hpp | 17 + .../boost/preprocessor/repeat_from_to_2nd.hpp | 17 + .../boost/preprocessor/repeat_from_to_3rd.hpp | 17 + .../include/boost/preprocessor/repetition.hpp | 32 + .../preprocessor/repetition/deduce_r.hpp | 22 + .../preprocessor/repetition/deduce_z.hpp | 22 + .../repetition/detail/dmc/for.hpp | 536 +++ .../repetition/detail/edg/for.hpp | 534 +++ .../preprocessor/repetition/detail/for.hpp | 536 +++ .../repetition/detail/msvc/for.hpp | 277 ++ .../boost/preprocessor/repetition/enum.hpp | 66 + .../repetition/enum_binary_params.hpp | 54 + .../preprocessor/repetition/enum_params.hpp | 41 + .../repetition/enum_params_with_a_default.hpp | 25 + .../repetition/enum_params_with_defaults.hpp | 24 + .../preprocessor/repetition/enum_shifted.hpp | 68 + .../repetition/enum_shifted_binary_params.hpp | 51 + .../repetition/enum_shifted_params.hpp | 44 + .../preprocessor/repetition/enum_trailing.hpp | 63 + .../enum_trailing_binary_params.hpp | 53 + .../repetition/enum_trailing_params.hpp | 38 + .../boost/preprocessor/repetition/for.hpp | 324 ++ .../boost/preprocessor/repetition/repeat.hpp | 825 ++++ .../repetition/repeat_from_to.hpp | 87 + .../include/boost/preprocessor/selection.hpp | 18 + .../boost/preprocessor/selection/max.hpp | 39 + .../boost/preprocessor/selection/min.hpp | 39 + .../boost/include/boost/preprocessor/seq.hpp | 44 + .../include/boost/preprocessor/seq/cat.hpp | 49 + .../seq/detail/binary_transform.hpp | 47 + .../preprocessor/seq/detail/is_empty.hpp | 49 + .../boost/preprocessor/seq/detail/split.hpp | 284 ++ .../preprocessor/seq/detail/to_list_msvc.hpp | 55 + .../include/boost/preprocessor/seq/elem.hpp | 304 ++ .../include/boost/preprocessor/seq/enum.hpp | 288 ++ .../include/boost/preprocessor/seq/filter.hpp | 54 + .../boost/preprocessor/seq/first_n.hpp | 30 + .../boost/preprocessor/seq/fold_left.hpp | 1070 +++++ .../boost/preprocessor/seq/fold_right.hpp | 288 ++ .../boost/preprocessor/seq/for_each.hpp | 107 + .../boost/preprocessor/seq/for_each_i.hpp | 109 + .../preprocessor/seq/for_each_product.hpp | 126 + .../include/boost/preprocessor/seq/insert.hpp | 28 + .../boost/preprocessor/seq/pop_back.hpp | 29 + .../boost/preprocessor/seq/pop_front.hpp | 27 + .../boost/preprocessor/seq/push_back.hpp | 19 + .../boost/preprocessor/seq/push_front.hpp | 19 + .../include/boost/preprocessor/seq/remove.hpp | 29 + .../boost/preprocessor/seq/replace.hpp | 45 + .../include/boost/preprocessor/seq/rest_n.hpp | 46 + .../boost/preprocessor/seq/reverse.hpp | 39 + .../include/boost/preprocessor/seq/seq.hpp | 44 + .../include/boost/preprocessor/seq/size.hpp | 548 +++ .../include/boost/preprocessor/seq/subseq.hpp | 28 + .../boost/preprocessor/seq/to_array.hpp | 28 + .../boost/preprocessor/seq/to_list.hpp | 41 + .../boost/preprocessor/seq/to_tuple.hpp | 27 + .../boost/preprocessor/seq/transform.hpp | 48 + .../preprocessor/seq/variadic_seq_to_seq.hpp | 28 + .../boost/include/boost/preprocessor/slot.hpp | 17 + .../boost/preprocessor/slot/counter.hpp | 25 + .../preprocessor/slot/detail/counter.hpp | 269 ++ .../boost/preprocessor/slot/detail/def.hpp | 49 + .../boost/preprocessor/slot/detail/shared.hpp | 247 ++ .../boost/preprocessor/slot/detail/slot1.hpp | 267 ++ .../boost/preprocessor/slot/detail/slot2.hpp | 267 ++ .../boost/preprocessor/slot/detail/slot3.hpp | 267 ++ .../boost/preprocessor/slot/detail/slot4.hpp | 267 ++ .../boost/preprocessor/slot/detail/slot5.hpp | 267 ++ .../include/boost/preprocessor/slot/slot.hpp | 32 + .../include/boost/preprocessor/stringize.hpp | 33 + .../include/boost/preprocessor/tuple.hpp | 35 + .../tuple/detail/is_single_return.hpp | 28 + .../include/boost/preprocessor/tuple/eat.hpp | 115 + .../include/boost/preprocessor/tuple/elem.hpp | 201 + .../include/boost/preprocessor/tuple/enum.hpp | 22 + .../boost/preprocessor/tuple/insert.hpp | 37 + .../boost/preprocessor/tuple/pop_back.hpp | 64 + .../boost/preprocessor/tuple/pop_front.hpp | 65 + .../boost/preprocessor/tuple/push_back.hpp | 31 + .../boost/preprocessor/tuple/push_front.hpp | 32 + .../include/boost/preprocessor/tuple/rem.hpp | 149 + .../boost/preprocessor/tuple/remove.hpp | 64 + .../boost/preprocessor/tuple/replace.hpp | 37 + .../boost/preprocessor/tuple/reverse.hpp | 117 + .../include/boost/preprocessor/tuple/size.hpp | 28 + .../boost/preprocessor/tuple/to_array.hpp | 39 + .../boost/preprocessor/tuple/to_list.hpp | 118 + .../boost/preprocessor/tuple/to_seq.hpp | 119 + .../include/boost/preprocessor/variadic.hpp | 23 + .../variadic/detail/is_single_return.hpp | 28 + .../boost/preprocessor/variadic/elem.hpp | 94 + .../boost/preprocessor/variadic/size.hpp | 30 + .../boost/preprocessor/variadic/to_array.hpp | 32 + .../boost/preprocessor/variadic/to_list.hpp | 25 + .../boost/preprocessor/variadic/to_seq.hpp | 25 + .../boost/preprocessor/variadic/to_tuple.hpp | 24 + .../include/boost/preprocessor/while.hpp | 17 + .../include/boost/preprocessor/wstringize.hpp | 29 + libraries/boost/include/boost/ref.hpp | 17 + .../boost/include/boost/static_assert.hpp | 180 + .../include/boost/type_traits/add_const.hpp | 52 + .../boost/type_traits/add_const.hpp129215 | 1 + .../include/boost/type_traits/add_cv.hpp | 47 + .../type_traits/add_lvalue_reference.hpp | 33 + .../include/boost/type_traits/add_pointer.hpp | 67 + .../boost/type_traits/add_reference.hpp | 66 + .../boost/type_traits/add_reference.hpp57241 | 1 + .../type_traits/add_rvalue_reference.hpp | 70 + .../add_rvalue_reference.hpp129929 | 1 + .../boost/type_traits/add_volatile.hpp | 46 + .../boost/type_traits/aligned_storage.hpp | 138 + .../boost/type_traits/alignment_of.hpp | 119 + .../boost/type_traits/alignment_traits.hpp | 15 + .../boost/type_traits/arithmetic_traits.hpp | 20 + .../boost/type_traits/array_traits.hpp | 15 + .../type_traits/broken_compiler_spec.hpp | 21 + .../include/boost/type_traits/common_type.hpp | 152 + .../boost/type_traits/composite_traits.hpp | 29 + .../include/boost/type_traits/conditional.hpp | 28 + .../boost/type_traits/conditional.hpp129931 | 1 + .../include/boost/type_traits/config.hpp | 21 + .../boost/type_traits/conversion_traits.hpp | 17 + .../include/boost/type_traits/copy_cv.hpp | 40 + .../include/boost/type_traits/cv_traits.hpp | 24 + .../boost/include/boost/type_traits/decay.hpp | 49 + .../include/boost/type_traits/declval.hpp | 44 + .../boost/type_traits/declval.hpp129928 | 1 + .../type_traits/detail/bool_trait_def.hpp | 179 + .../type_traits/detail/bool_trait_undef.hpp | 28 + .../detail/common_arithmetic_type.hpp | 218 + .../type_traits/detail/common_type_impl.hpp | 107 + .../detail/composite_member_pointer_type.hpp | 113 + .../detail/composite_pointer_type.hpp | 153 + .../boost/type_traits/detail/config.hpp | 83 + .../boost/type_traits/detail/detector.hpp | 37 + .../detail/has_binary_operator.hpp | 279 ++ .../detail/has_postfix_operator.hpp | 195 + .../detail/has_prefix_operator.hpp | 208 + .../boost/type_traits/detail/ice_and.hpp | 42 + .../boost/type_traits/detail/ice_eq.hpp | 43 + .../boost/type_traits/detail/ice_not.hpp | 38 + .../boost/type_traits/detail/ice_or.hpp | 41 + .../detail/is_function_ptr_helper.hpp | 444 ++ .../detail/is_function_ptr_helper.hpp56998 | 1 + .../detail/is_function_ptr_tester.hpp | 449 ++ .../type_traits/detail/is_likely_lambda.hpp | 94 + .../detail/is_mem_fun_pointer_impl.hpp | 1328 ++++++ .../detail/is_mem_fun_pointer_impl.hpp129293 | 1 + .../detail/is_mem_fun_pointer_tester.hpp | 1800 ++++++++ .../boost/type_traits/detail/mp_defer.hpp | 56 + .../detail/template_arity_spec.hpp | 16 + .../boost/type_traits/detail/yes_no_type.hpp | 26 + .../include/boost/type_traits/detected.hpp | 24 + .../include/boost/type_traits/detected_or.hpp | 25 + .../include/boost/type_traits/extent.hpp | 139 + .../type_traits/floating_point_promotion.hpp | 28 + .../boost/type_traits/function_traits.hpp | 174 + .../include/boost/type_traits/has_bit_and.hpp | 49 + .../boost/type_traits/has_bit_and_assign.hpp | 55 + .../include/boost/type_traits/has_bit_or.hpp | 49 + .../boost/type_traits/has_bit_or_assign.hpp | 55 + .../include/boost/type_traits/has_bit_xor.hpp | 49 + .../boost/type_traits/has_bit_xor_assign.hpp | 55 + .../boost/type_traits/has_complement.hpp | 32 + .../boost/type_traits/has_dereference.hpp | 31 + .../include/boost/type_traits/has_divides.hpp | 40 + .../boost/type_traits/has_divides_assign.hpp | 47 + .../boost/type_traits/has_equal_to.hpp | 52 + .../include/boost/type_traits/has_greater.hpp | 52 + .../boost/type_traits/has_greater_equal.hpp | 52 + .../boost/type_traits/has_left_shift.hpp | 49 + .../type_traits/has_left_shift_assign.hpp | 55 + .../include/boost/type_traits/has_less.hpp | 52 + .../boost/type_traits/has_less_equal.hpp | 52 + .../boost/type_traits/has_logical_and.hpp | 40 + .../boost/type_traits/has_logical_not.hpp | 32 + .../boost/type_traits/has_logical_or.hpp | 40 + .../include/boost/type_traits/has_minus.hpp | 153 + .../boost/type_traits/has_minus_assign.hpp | 158 + .../include/boost/type_traits/has_modulus.hpp | 49 + .../boost/type_traits/has_modulus_assign.hpp | 55 + .../boost/type_traits/has_multiplies.hpp | 40 + .../type_traits/has_multiplies_assign.hpp | 47 + .../include/boost/type_traits/has_negate.hpp | 25 + .../boost/type_traits/has_new_operator.hpp | 147 + .../boost/type_traits/has_not_equal_to.hpp | 52 + .../boost/type_traits/has_nothrow_assign.hpp | 84 + .../type_traits/has_nothrow_constructor.hpp | 73 + .../boost/type_traits/has_nothrow_copy.hpp | 82 + .../type_traits/has_nothrow_destructor.hpp | 56 + .../boost/type_traits/has_operator.hpp | 51 + .../include/boost/type_traits/has_plus.hpp | 54 + .../boost/type_traits/has_plus_assign.hpp | 156 + .../boost/type_traits/has_post_decrement.hpp | 44 + .../boost/type_traits/has_post_increment.hpp | 44 + .../boost/type_traits/has_pre_decrement.hpp | 44 + .../boost/type_traits/has_pre_increment.hpp | 44 + .../boost/type_traits/has_right_shift.hpp | 49 + .../type_traits/has_right_shift_assign.hpp | 55 + .../boost/type_traits/has_trivial_assign.hpp | 52 + .../type_traits/has_trivial_constructor.hpp | 57 + .../boost/type_traits/has_trivial_copy.hpp | 63 + .../type_traits/has_trivial_destructor.hpp | 48 + .../type_traits/has_trivial_move_assign.hpp | 73 + .../has_trivial_move_constructor.hpp | 78 + .../boost/type_traits/has_unary_minus.hpp | 25 + .../boost/type_traits/has_unary_plus.hpp | 23 + .../type_traits/has_virtual_destructor.hpp | 26 + .../boost/include/boost/type_traits/ice.hpp | 20 + .../boost/type_traits/integral_constant.hpp | 107 + .../type_traits/integral_constant.hpp56805 | 3 + .../boost/type_traits/integral_promotion.hpp | 187 + .../include/boost/type_traits/intrinsics.hpp | 381 ++ .../include/boost/type_traits/is_abstract.hpp | 150 + .../boost/type_traits/is_arithmetic.hpp | 22 + .../include/boost/type_traits/is_array.hpp | 43 + .../boost/type_traits/is_array.hpp57174 | 1 + .../boost/type_traits/is_assignable.hpp | 85 + .../boost/type_traits/is_base_and_derived.hpp | 244 ++ .../type_traits/is_base_and_derived.hpp297191 | 1 + .../include/boost/type_traits/is_base_of.hpp | 39 + .../boost/type_traits/is_base_of.hpp297190 | 1 + .../boost/type_traits/is_base_of_tr1.hpp | 37 + .../include/boost/type_traits/is_class.hpp | 114 + .../boost/type_traits/is_class.hpp57232 | 1 + .../include/boost/type_traits/is_complete.hpp | 90 + .../boost/type_traits/is_complete.hpp56992 | 1 + .../include/boost/type_traits/is_complex.hpp | 25 + .../include/boost/type_traits/is_compound.hpp | 24 + .../include/boost/type_traits/is_const.hpp | 47 + .../boost/type_traits/is_const.hpp63211 | 1 + .../boost/type_traits/is_constructible.hpp | 90 + .../boost/type_traits/is_convertible.hpp | 506 +++ .../boost/type_traits/is_convertible.hpp56879 | 1 + .../boost/type_traits/is_copy_assignable.hpp | 141 + .../type_traits/is_copy_constructible.hpp | 187 + .../type_traits/is_default_constructible.hpp | 98 + .../boost/type_traits/is_destructible.hpp | 69 + .../include/boost/type_traits/is_detected.hpp | 29 + .../type_traits/is_detected_convertible.hpp | 29 + .../boost/type_traits/is_detected_exact.hpp | 29 + .../include/boost/type_traits/is_empty.hpp | 120 + .../boost/type_traits/is_empty.hpp56878 | 1 + .../include/boost/type_traits/is_enum.hpp | 166 + .../include/boost/type_traits/is_final.hpp | 30 + .../include/boost/type_traits/is_float.hpp | 20 + .../boost/type_traits/is_floating_point.hpp | 30 + .../include/boost/type_traits/is_function.hpp | 102 + .../boost/type_traits/is_function.hpp56994 | 1 + .../boost/type_traits/is_fundamental.hpp | 26 + .../include/boost/type_traits/is_integral.hpp | 89 + .../type_traits/is_list_constructible.hpp | 48 + .../boost/type_traits/is_lvalue_reference.hpp | 50 + .../type_traits/is_lvalue_reference.hpp56996 | 1 + .../is_member_function_pointer.hpp | 120 + .../is_member_function_pointer.hpp129285 | 1 + .../type_traits/is_member_object_pointer.hpp | 24 + .../boost/type_traits/is_member_pointer.hpp | 45 + .../is_nothrow_move_assignable.hpp | 92 + .../is_nothrow_move_constructible.hpp | 97 + .../type_traits/is_nothrow_swappable.hpp | 67 + .../include/boost/type_traits/is_object.hpp | 28 + .../include/boost/type_traits/is_pod.hpp | 59 + .../include/boost/type_traits/is_pointer.hpp | 47 + .../boost/type_traits/is_pointer.hpp129284 | 1 + .../boost/type_traits/is_polymorphic.hpp | 122 + .../boost/type_traits/is_reference.hpp | 30 + .../boost/type_traits/is_reference.hpp56995 | 1 + .../boost/type_traits/is_rvalue_reference.hpp | 25 + .../type_traits/is_rvalue_reference.hpp56997 | 1 + .../include/boost/type_traits/is_same.hpp | 41 + .../boost/type_traits/is_same.hpp117833 | 1 + .../include/boost/type_traits/is_scalar.hpp | 27 + .../include/boost/type_traits/is_signed.hpp | 163 + .../boost/type_traits/is_stateless.hpp | 33 + .../include/boost/type_traits/is_union.hpp | 31 + .../include/boost/type_traits/is_unsigned.hpp | 163 + .../boost/type_traits/is_virtual_base_of.hpp | 105 + .../include/boost/type_traits/is_void.hpp | 26 + .../boost/type_traits/is_void.hpp57173 | 1 + .../include/boost/type_traits/is_volatile.hpp | 46 + .../include/boost/type_traits/make_signed.hpp | 137 + .../boost/type_traits/make_unsigned.hpp | 136 + .../include/boost/type_traits/make_void.hpp | 52 + .../include/boost/type_traits/nonesuch.hpp | 35 + .../boost/type_traits/object_traits.hpp | 33 + .../include/boost/type_traits/promote.hpp | 26 + .../boost/include/boost/type_traits/rank.hpp | 87 + .../boost/type_traits/reference_traits.hpp | 15 + .../boost/type_traits/remove_all_extents.hpp | 41 + .../boost/type_traits/remove_bounds.hpp | 28 + .../boost/type_traits/remove_const.hpp | 39 + .../boost/type_traits/remove_const.hpp63225 | 1 + .../include/boost/type_traits/remove_cv.hpp | 45 + .../boost/type_traits/remove_cv.hpp57210 | 1 + .../boost/type_traits/remove_cv_ref.hpp | 30 + .../boost/type_traits/remove_extent.hpp | 41 + .../boost/type_traits/remove_pointer.hpp | 84 + .../boost/type_traits/remove_reference.hpp | 59 + .../type_traits/remove_reference.hpp56993 | 1 + .../boost/type_traits/remove_volatile.hpp | 39 + .../include/boost/type_traits/same_traits.hpp | 15 + .../boost/type_traits/transform_traits.hpp | 21 + .../boost/type_traits/type_identity.hpp | 31 + .../boost/type_traits/type_identity.hpp129932 | 1 + .../boost/type_traits/type_with_alignment.hpp | 260 ++ .../boost/include/boost/utility/addressof.hpp | 17 + .../boost/utility/base_from_member.hpp | 172 + .../boost/include/boost/utility/binary.hpp | 708 ++++ .../boost/utility/compare_pointees.hpp | 76 + .../boost/include/boost/utility/declval.hpp | 13 + .../detail/in_place_factory_prefix.hpp | 36 + .../detail/in_place_factory_suffix.hpp | 23 + .../boost/utility/detail/minstd_rand.hpp | 55 + .../utility/detail/result_of_iterate.hpp | 218 + .../boost/include/boost/utility/enable_if.hpp | 17 + .../boost/utility/explicit_operator_bool.hpp | 17 + .../include/boost/utility/identity_type.hpp | 46 + .../boost/utility/in_place_factory.hpp | 86 + .../boost/include/boost/utility/result_of.hpp | 234 ++ .../include/boost/utility/result_of.hpp129237 | 1 + .../include/boost/utility/string_ref.hpp | 553 +++ .../include/boost/utility/string_ref_fwd.hpp | 37 + .../include/boost/utility/string_view.hpp | 690 ++++ .../include/boost/utility/string_view_fwd.hpp | 39 + .../boost/include/boost/utility/swap.hpp | 17 + .../boost/utility/typed_in_place_factory.hpp | 77 + .../include/boost/utility/value_init.hpp | 281 ++ libraries/boost/include/boost/version.hpp | 32 + libraries/eosiolib/CMakeLists.txt | 3 + libraries/eosiolib/datastream.hpp | 4 + libraries/eosiolib/eosiolib.cpp | 1 - libraries/eosiolib/multi_index.hpp | 30 +- libraries/eosiolib/reflect.hpp | 2 +- libraries/libc++/CMakeLists.txt | 4 + libraries/libc/CMakeLists.txt | 6 + modules/EosioWasmToolchain.cmake.in | 18 +- modules/EosioWasmToolchainBuild.cmake.in | 29 - modules/eosio.cdt-config.cmake.in | 5 + 3627 files changed, 496112 insertions(+), 52 deletions(-) create mode 100644 libraries/boost/include/boost/assert.hpp create mode 100644 libraries/boost/include/boost/config.hpp create mode 100644 libraries/boost/include/boost/config/abi/borland_prefix.hpp create mode 100644 libraries/boost/include/boost/config/abi/borland_suffix.hpp create mode 100644 libraries/boost/include/boost/config/abi/msvc_prefix.hpp create mode 100644 libraries/boost/include/boost/config/abi/msvc_suffix.hpp create mode 100644 libraries/boost/include/boost/config/abi_prefix.hpp create mode 100644 libraries/boost/include/boost/config/abi_suffix.hpp create mode 100644 libraries/boost/include/boost/config/auto_link.hpp create mode 100644 libraries/boost/include/boost/config/compiler/borland.hpp create mode 100644 libraries/boost/include/boost/config/compiler/clang.hpp create mode 100644 libraries/boost/include/boost/config/compiler/codegear.hpp create mode 100644 libraries/boost/include/boost/config/compiler/comeau.hpp create mode 100644 libraries/boost/include/boost/config/compiler/common_edg.hpp create mode 100644 libraries/boost/include/boost/config/compiler/compaq_cxx.hpp create mode 100644 libraries/boost/include/boost/config/compiler/cray.hpp create mode 100644 libraries/boost/include/boost/config/compiler/diab.hpp create mode 100644 libraries/boost/include/boost/config/compiler/digitalmars.hpp create mode 100644 libraries/boost/include/boost/config/compiler/gcc.hpp create mode 100644 libraries/boost/include/boost/config/compiler/gcc_xml.hpp create mode 100644 libraries/boost/include/boost/config/compiler/greenhills.hpp create mode 100644 libraries/boost/include/boost/config/compiler/hp_acc.hpp create mode 100644 libraries/boost/include/boost/config/compiler/intel.hpp create mode 100644 libraries/boost/include/boost/config/compiler/kai.hpp create mode 100644 libraries/boost/include/boost/config/compiler/metrowerks.hpp create mode 100644 libraries/boost/include/boost/config/compiler/mpw.hpp create mode 100644 libraries/boost/include/boost/config/compiler/nvcc.hpp create mode 100644 libraries/boost/include/boost/config/compiler/pathscale.hpp create mode 100644 libraries/boost/include/boost/config/compiler/pgi.hpp create mode 100644 libraries/boost/include/boost/config/compiler/sgi_mipspro.hpp create mode 100644 libraries/boost/include/boost/config/compiler/sunpro_cc.hpp create mode 100644 libraries/boost/include/boost/config/compiler/vacpp.hpp create mode 100644 libraries/boost/include/boost/config/compiler/visualc.hpp create mode 100644 libraries/boost/include/boost/config/compiler/xlcpp.hpp create mode 100644 libraries/boost/include/boost/config/compiler/xlcpp_zos.hpp create mode 100644 libraries/boost/include/boost/config/detail/posix_features.hpp create mode 100644 libraries/boost/include/boost/config/detail/select_compiler_config.hpp create mode 100644 libraries/boost/include/boost/config/detail/select_platform_config.hpp create mode 100644 libraries/boost/include/boost/config/detail/select_stdlib_config.hpp create mode 100644 libraries/boost/include/boost/config/detail/suffix.hpp create mode 100644 libraries/boost/include/boost/config/header_deprecated.hpp create mode 100644 libraries/boost/include/boost/config/helper_macros.hpp create mode 100644 libraries/boost/include/boost/config/no_tr1/cmath.hpp create mode 100644 libraries/boost/include/boost/config/no_tr1/complex.hpp create mode 100644 libraries/boost/include/boost/config/no_tr1/functional.hpp create mode 100644 libraries/boost/include/boost/config/no_tr1/memory.hpp create mode 100644 libraries/boost/include/boost/config/no_tr1/utility.hpp create mode 100644 libraries/boost/include/boost/config/platform/aix.hpp create mode 100644 libraries/boost/include/boost/config/platform/amigaos.hpp create mode 100644 libraries/boost/include/boost/config/platform/beos.hpp create mode 100644 libraries/boost/include/boost/config/platform/bsd.hpp create mode 100644 libraries/boost/include/boost/config/platform/cloudabi.hpp create mode 100644 libraries/boost/include/boost/config/platform/cray.hpp create mode 100644 libraries/boost/include/boost/config/platform/cygwin.hpp create mode 100644 libraries/boost/include/boost/config/platform/haiku.hpp create mode 100644 libraries/boost/include/boost/config/platform/hpux.hpp create mode 100644 libraries/boost/include/boost/config/platform/irix.hpp create mode 100644 libraries/boost/include/boost/config/platform/linux.hpp create mode 100644 libraries/boost/include/boost/config/platform/macos.hpp create mode 100644 libraries/boost/include/boost/config/platform/qnxnto.hpp create mode 100644 libraries/boost/include/boost/config/platform/solaris.hpp create mode 100644 libraries/boost/include/boost/config/platform/symbian.hpp create mode 100644 libraries/boost/include/boost/config/platform/vms.hpp create mode 100644 libraries/boost/include/boost/config/platform/vxworks.hpp create mode 100644 libraries/boost/include/boost/config/platform/win32.hpp create mode 100644 libraries/boost/include/boost/config/platform/zos.hpp create mode 100644 libraries/boost/include/boost/config/pragma_message.hpp create mode 100644 libraries/boost/include/boost/config/requires_threads.hpp create mode 100644 libraries/boost/include/boost/config/stdlib/dinkumware.hpp create mode 100644 libraries/boost/include/boost/config/stdlib/libcomo.hpp create mode 100644 libraries/boost/include/boost/config/stdlib/libcpp.hpp create mode 100644 libraries/boost/include/boost/config/stdlib/libstdcpp3.hpp create mode 100644 libraries/boost/include/boost/config/stdlib/modena.hpp create mode 100644 libraries/boost/include/boost/config/stdlib/msl.hpp create mode 100644 libraries/boost/include/boost/config/stdlib/roguewave.hpp create mode 100644 libraries/boost/include/boost/config/stdlib/sgi.hpp create mode 100644 libraries/boost/include/boost/config/stdlib/stlport.hpp create mode 100644 libraries/boost/include/boost/config/stdlib/vacpp.hpp create mode 100644 libraries/boost/include/boost/config/stdlib/xlcpp_zos.hpp create mode 100644 libraries/boost/include/boost/config/user.hpp create mode 100644 libraries/boost/include/boost/config/warning_disable.hpp create mode 100644 libraries/boost/include/boost/config/workaround.hpp create mode 100644 libraries/boost/include/boost/container/adaptive_pool.hpp create mode 100644 libraries/boost/include/boost/container/allocator.hpp create mode 100644 libraries/boost/include/boost/container/allocator_traits.hpp create mode 100644 libraries/boost/include/boost/container/container_fwd.hpp create mode 100644 libraries/boost/include/boost/container/deque.hpp create mode 100644 libraries/boost/include/boost/container/detail/adaptive_node_pool.hpp create mode 100644 libraries/boost/include/boost/container/detail/adaptive_node_pool_impl.hpp create mode 100644 libraries/boost/include/boost/container/detail/addressof.hpp create mode 100644 libraries/boost/include/boost/container/detail/advanced_insert_int.hpp create mode 100644 libraries/boost/include/boost/container/detail/algorithm.hpp create mode 100644 libraries/boost/include/boost/container/detail/alloc_helpers.hpp create mode 100644 libraries/boost/include/boost/container/detail/alloc_lib.h create mode 100644 libraries/boost/include/boost/container/detail/allocation_type.hpp create mode 100644 libraries/boost/include/boost/container/detail/allocator_version_traits.hpp create mode 100644 libraries/boost/include/boost/container/detail/auto_link.hpp create mode 100644 libraries/boost/include/boost/container/detail/block_list.hpp create mode 100644 libraries/boost/include/boost/container/detail/block_slist.hpp create mode 100644 libraries/boost/include/boost/container/detail/compare_functors.hpp create mode 100644 libraries/boost/include/boost/container/detail/config_begin.hpp create mode 100644 libraries/boost/include/boost/container/detail/config_end.hpp create mode 100644 libraries/boost/include/boost/container/detail/construct_in_place.hpp create mode 100644 libraries/boost/include/boost/container/detail/container_or_allocator_rebind.hpp create mode 100644 libraries/boost/include/boost/container/detail/container_rebind.hpp create mode 100644 libraries/boost/include/boost/container/detail/copy_move_algo.hpp create mode 100644 libraries/boost/include/boost/container/detail/destroyers.hpp create mode 100644 libraries/boost/include/boost/container/detail/dispatch_uses_allocator.hpp create mode 100644 libraries/boost/include/boost/container/detail/dlmalloc.hpp create mode 100644 libraries/boost/include/boost/container/detail/flat_tree.hpp create mode 100644 libraries/boost/include/boost/container/detail/function_detector.hpp create mode 100644 libraries/boost/include/boost/container/detail/is_container.hpp create mode 100644 libraries/boost/include/boost/container/detail/is_contiguous_container.hpp create mode 100644 libraries/boost/include/boost/container/detail/is_sorted.hpp create mode 100644 libraries/boost/include/boost/container/detail/iterator.hpp create mode 100644 libraries/boost/include/boost/container/detail/iterator_to_raw_pointer.hpp create mode 100644 libraries/boost/include/boost/container/detail/iterators.hpp create mode 100644 libraries/boost/include/boost/container/detail/math_functions.hpp create mode 100644 libraries/boost/include/boost/container/detail/min_max.hpp create mode 100644 libraries/boost/include/boost/container/detail/minimal_char_traits_header.hpp create mode 100644 libraries/boost/include/boost/container/detail/mpl.hpp create mode 100644 libraries/boost/include/boost/container/detail/multiallocation_chain.hpp create mode 100644 libraries/boost/include/boost/container/detail/mutex.hpp create mode 100644 libraries/boost/include/boost/container/detail/next_capacity.hpp create mode 100644 libraries/boost/include/boost/container/detail/node_alloc_holder.hpp create mode 100644 libraries/boost/include/boost/container/detail/node_pool.hpp create mode 100644 libraries/boost/include/boost/container/detail/node_pool_impl.hpp create mode 100644 libraries/boost/include/boost/container/detail/pair.hpp create mode 100644 libraries/boost/include/boost/container/detail/pair_key_mapped_of_value.hpp create mode 100644 libraries/boost/include/boost/container/detail/placement_new.hpp create mode 100644 libraries/boost/include/boost/container/detail/pool_common.hpp create mode 100644 libraries/boost/include/boost/container/detail/pool_common_alloc.hpp create mode 100644 libraries/boost/include/boost/container/detail/pool_resource.hpp create mode 100644 libraries/boost/include/boost/container/detail/singleton.hpp create mode 100644 libraries/boost/include/boost/container/detail/std_fwd.hpp create mode 100644 libraries/boost/include/boost/container/detail/transform_iterator.hpp create mode 100644 libraries/boost/include/boost/container/detail/tree.hpp create mode 100644 libraries/boost/include/boost/container/detail/type_traits.hpp create mode 100644 libraries/boost/include/boost/container/detail/value_functors.hpp create mode 100644 libraries/boost/include/boost/container/detail/value_init.hpp create mode 100644 libraries/boost/include/boost/container/detail/variadic_templates_tools.hpp create mode 100644 libraries/boost/include/boost/container/detail/version_type.hpp create mode 100644 libraries/boost/include/boost/container/detail/workaround.hpp create mode 100644 libraries/boost/include/boost/container/flat_map.hpp create mode 100644 libraries/boost/include/boost/container/flat_set.hpp create mode 100644 libraries/boost/include/boost/container/list.hpp create mode 100644 libraries/boost/include/boost/container/map.hpp create mode 100644 libraries/boost/include/boost/container/new_allocator.hpp create mode 100644 libraries/boost/include/boost/container/node_allocator.hpp create mode 100644 libraries/boost/include/boost/container/node_handle.hpp create mode 100644 libraries/boost/include/boost/container/options.hpp create mode 100644 libraries/boost/include/boost/container/pmr/deque.hpp create mode 100644 libraries/boost/include/boost/container/pmr/flat_map.hpp create mode 100644 libraries/boost/include/boost/container/pmr/flat_set.hpp create mode 100644 libraries/boost/include/boost/container/pmr/global_resource.hpp create mode 100644 libraries/boost/include/boost/container/pmr/list.hpp create mode 100644 libraries/boost/include/boost/container/pmr/map.hpp create mode 100644 libraries/boost/include/boost/container/pmr/memory_resource.hpp create mode 100644 libraries/boost/include/boost/container/pmr/monotonic_buffer_resource.hpp create mode 100644 libraries/boost/include/boost/container/pmr/polymorphic_allocator.hpp create mode 100644 libraries/boost/include/boost/container/pmr/pool_options.hpp create mode 100644 libraries/boost/include/boost/container/pmr/resource_adaptor.hpp create mode 100644 libraries/boost/include/boost/container/pmr/set.hpp create mode 100644 libraries/boost/include/boost/container/pmr/slist.hpp create mode 100644 libraries/boost/include/boost/container/pmr/small_vector.hpp create mode 100644 libraries/boost/include/boost/container/pmr/stable_vector.hpp create mode 100644 libraries/boost/include/boost/container/pmr/string.hpp create mode 100644 libraries/boost/include/boost/container/pmr/synchronized_pool_resource.hpp create mode 100644 libraries/boost/include/boost/container/pmr/unsynchronized_pool_resource.hpp create mode 100644 libraries/boost/include/boost/container/pmr/vector.hpp create mode 100644 libraries/boost/include/boost/container/scoped_allocator.hpp create mode 100644 libraries/boost/include/boost/container/scoped_allocator_fwd.hpp create mode 100644 libraries/boost/include/boost/container/set.hpp create mode 100644 libraries/boost/include/boost/container/slist.hpp create mode 100644 libraries/boost/include/boost/container/small_vector.hpp create mode 100644 libraries/boost/include/boost/container/stable_vector.hpp create mode 100644 libraries/boost/include/boost/container/static_vector.hpp create mode 100644 libraries/boost/include/boost/container/string.hpp create mode 100644 libraries/boost/include/boost/container/throw_exception.hpp create mode 100644 libraries/boost/include/boost/container/uses_allocator.hpp create mode 100644 libraries/boost/include/boost/container/uses_allocator_fwd.hpp create mode 100644 libraries/boost/include/boost/container/vector.hpp create mode 100644 libraries/boost/include/boost/container_hash/detail/float_functions.hpp create mode 100644 libraries/boost/include/boost/container_hash/detail/hash_float.hpp create mode 100644 libraries/boost/include/boost/container_hash/detail/limits.hpp create mode 100644 libraries/boost/include/boost/container_hash/extensions.hpp create mode 100644 libraries/boost/include/boost/container_hash/hash.hpp create mode 100644 libraries/boost/include/boost/container_hash/hash_fwd.hpp create mode 100644 libraries/boost/include/boost/core/addressof.hpp create mode 100644 libraries/boost/include/boost/core/addressof.hpp314015 create mode 100644 libraries/boost/include/boost/core/checked_delete.hpp create mode 100644 libraries/boost/include/boost/core/demangle.hpp create mode 100644 libraries/boost/include/boost/core/enable_if.hpp create mode 100644 libraries/boost/include/boost/core/enable_if.hpp56631 create mode 100644 libraries/boost/include/boost/core/explicit_operator_bool.hpp create mode 100644 libraries/boost/include/boost/core/ignore_unused.hpp create mode 100644 libraries/boost/include/boost/core/is_same.hpp create mode 100644 libraries/boost/include/boost/core/lightweight_test.hpp create mode 100644 libraries/boost/include/boost/core/lightweight_test_trait.hpp create mode 100644 libraries/boost/include/boost/core/no_exceptions_support.hpp create mode 100644 libraries/boost/include/boost/core/noncopyable.hpp create mode 100644 libraries/boost/include/boost/core/null_deleter.hpp create mode 100644 libraries/boost/include/boost/core/pointer_traits.hpp create mode 100644 libraries/boost/include/boost/core/ref.hpp create mode 100644 libraries/boost/include/boost/core/ref.hpp314014 create mode 100644 libraries/boost/include/boost/core/scoped_enum.hpp create mode 100644 libraries/boost/include/boost/core/swap.hpp create mode 100644 libraries/boost/include/boost/core/typeinfo.hpp create mode 100644 libraries/boost/include/boost/core/underlying_type.hpp create mode 100644 libraries/boost/include/boost/cstdint.hpp create mode 100644 libraries/boost/include/boost/detail/algorithm.hpp create mode 100644 libraries/boost/include/boost/detail/allocator_utilities.hpp create mode 100644 libraries/boost/include/boost/detail/atomic_count.hpp create mode 100644 libraries/boost/include/boost/detail/basic_pointerbuf.hpp create mode 100644 libraries/boost/include/boost/detail/binary_search.hpp create mode 100644 libraries/boost/include/boost/detail/bitmask.hpp create mode 100644 libraries/boost/include/boost/detail/call_traits.hpp create mode 100644 libraries/boost/include/boost/detail/catch_exceptions.hpp create mode 100644 libraries/boost/include/boost/detail/compressed_pair.hpp create mode 100644 libraries/boost/include/boost/detail/container_fwd.hpp create mode 100644 libraries/boost/include/boost/detail/dynamic_bitset.hpp create mode 100644 libraries/boost/include/boost/detail/endian.hpp create mode 100644 libraries/boost/include/boost/detail/fenv.hpp create mode 100644 libraries/boost/include/boost/detail/has_default_constructor.hpp create mode 100644 libraries/boost/include/boost/detail/identifier.hpp create mode 100644 libraries/boost/include/boost/detail/indirect_traits.hpp create mode 100644 libraries/boost/include/boost/detail/interlocked.hpp create mode 100644 libraries/boost/include/boost/detail/is_incrementable.hpp create mode 100644 libraries/boost/include/boost/detail/is_sorted.hpp create mode 100644 libraries/boost/include/boost/detail/is_xxx.hpp create mode 100644 libraries/boost/include/boost/detail/iterator.hpp create mode 100644 libraries/boost/include/boost/detail/lcast_precision.hpp create mode 100644 libraries/boost/include/boost/detail/lightweight_main.hpp create mode 100644 libraries/boost/include/boost/detail/lightweight_mutex.hpp create mode 100644 libraries/boost/include/boost/detail/lightweight_test.hpp create mode 100644 libraries/boost/include/boost/detail/lightweight_test_report.hpp create mode 100644 libraries/boost/include/boost/detail/lightweight_thread.hpp create mode 100644 libraries/boost/include/boost/detail/named_template_params.hpp create mode 100644 libraries/boost/include/boost/detail/no_exceptions_support.hpp create mode 100644 libraries/boost/include/boost/detail/numeric_traits.hpp create mode 100644 libraries/boost/include/boost/detail/ob_compressed_pair.hpp create mode 100644 libraries/boost/include/boost/detail/quick_allocator.hpp create mode 100644 libraries/boost/include/boost/detail/reference_content.hpp create mode 100644 libraries/boost/include/boost/detail/scoped_enum_emulation.hpp create mode 100644 libraries/boost/include/boost/detail/select_type.hpp create mode 100644 libraries/boost/include/boost/detail/sp_typeinfo.hpp create mode 100644 libraries/boost/include/boost/detail/templated_streams.hpp create mode 100644 libraries/boost/include/boost/detail/utf8_codecvt_facet.hpp create mode 100644 libraries/boost/include/boost/detail/utf8_codecvt_facet.ipp create mode 100644 libraries/boost/include/boost/detail/winapi/access_rights.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/apc.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/basic_types.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/bcrypt.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/character_code_conversion.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/condition_variable.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/config.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/critical_section.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/crypt.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/dbghelp.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/debugapi.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/detail/deprecated_namespace.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/directory_management.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/dll.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/environment.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/error_codes.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/error_handling.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/event.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/file_management.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/file_mapping.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/get_current_process.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/get_current_process_id.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/get_current_thread.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/get_current_thread_id.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/get_last_error.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/get_process_times.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/get_system_directory.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/get_thread_times.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/handle_info.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/handles.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/heap_memory.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/init_once.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/jobs.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/limits.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/local_memory.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/memory.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/mutex.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/overlapped.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/page_protection_flags.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/pipes.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/priority_class.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/process.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/security.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/semaphore.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/shell.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/show_window.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/srw_lock.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/stack_backtrace.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/synchronization.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/system.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/thread.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/thread_pool.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/time.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/timers.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/tls.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/wait.hpp create mode 100644 libraries/boost/include/boost/detail/winapi/waitable_timer.hpp create mode 100644 libraries/boost/include/boost/detail/workaround.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/adt.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/adt/adapt_adt.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/adt/adapt_adt_named.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/adt/adapt_assoc_adt.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/adt/adapt_assoc_adt_named.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/adt/detail/adapt_base.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/adt/detail/adapt_base_assoc_attr_filler.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/adt/detail/adapt_base_attr_filler.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/adt/detail/extension.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/array.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/array/at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/array/begin_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/array/category_of_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/array/deref_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/array/end_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/array/is_sequence_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/array/is_view_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/array/size_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/array/tag_of.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/array/value_at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/array/value_of_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/boost_array.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/boost_array/array_iterator.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/boost_array/detail/at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/boost_array/detail/begin_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/boost_array/detail/category_of_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/boost_array/detail/end_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/boost_array/detail/is_sequence_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/boost_array/detail/is_view_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/boost_array/detail/size_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/boost_array/detail/value_at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/boost_array/tag_of.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/boost_tuple.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/boost_tuple/boost_tuple_iterator.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/boost_tuple/detail/at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/boost_tuple/detail/begin_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/boost_tuple/detail/build_cons.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/boost_tuple/detail/category_of_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/boost_tuple/detail/convert_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/boost_tuple/detail/end_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/boost_tuple/detail/is_sequence_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/boost_tuple/detail/is_view_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/boost_tuple/detail/size_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/boost_tuple/detail/value_at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/boost_tuple/mpl/clear.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/boost_tuple/tag_of.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/mpl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/mpl/detail/at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/mpl/detail/begin_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/mpl/detail/category_of_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/mpl/detail/empty_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/mpl/detail/end_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/mpl/detail/has_key_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/mpl/detail/is_sequence_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/mpl/detail/is_view_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/mpl/detail/size_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/mpl/detail/value_at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/mpl/mpl_iterator.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/std_array.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/std_array/detail/array_size.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/std_array/detail/at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/std_array/detail/begin_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/std_array/detail/category_of_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/std_array/detail/end_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/std_array/detail/is_sequence_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/std_array/detail/is_view_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/std_array/detail/size_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/std_array/detail/value_at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/std_array/std_array_iterator.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/std_array/tag_of.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/std_pair.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/std_tuple.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/std_tuple/detail/at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/std_tuple/detail/begin_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/std_tuple/detail/build_std_tuple.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/std_tuple/detail/category_of_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/std_tuple/detail/convert_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/std_tuple/detail/end_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/std_tuple/detail/is_sequence_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/std_tuple/detail/is_view_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/std_tuple/detail/size_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/std_tuple/detail/value_at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/std_tuple/mpl/clear.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/std_tuple/std_tuple_iterator.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/std_tuple/tag_of.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/struct.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/struct/adapt_assoc_struct.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/struct/adapt_assoc_struct_named.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/struct/adapt_struct.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/struct/adapt_struct_named.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/struct/define_assoc_struct.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/struct/define_struct.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/struct/define_struct_inline.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/struct/detail/adapt_auto.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/struct/detail/adapt_base.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/struct/detail/adapt_base_assoc_attr_filler.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/struct/detail/adapt_is_tpl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/struct/detail/at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/struct/detail/begin_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/struct/detail/category_of_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/struct/detail/define_struct.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/struct/detail/define_struct_inline.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/struct/detail/deref_data_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/struct/detail/deref_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/struct/detail/end_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/struct/detail/extension.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/struct/detail/is_sequence_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/struct/detail/is_view_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/struct/detail/key_of_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/struct/detail/namespace.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/struct/detail/proxy_type.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/struct/detail/size_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/struct/detail/value_at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/struct/detail/value_of_data_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/adapted/struct/detail/value_of_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/auxiliary.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/auxiliary/copy.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/auxiliary/move.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/iteration.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/iteration/accumulate.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/iteration/accumulate_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/iteration/detail/fold.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/iteration/detail/for_each.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/iteration/detail/preprocessed/fold.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/iteration/detail/preprocessed/iter_fold.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/iteration/detail/preprocessed/reverse_fold.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/iteration/detail/preprocessed/reverse_iter_fold.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/iteration/detail/segmented_fold.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/iteration/detail/segmented_for_each.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/iteration/fold.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/iteration/fold_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/iteration/for_each.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/iteration/for_each_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/iteration/iter_fold.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/iteration/iter_fold_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/iteration/reverse_fold.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/iteration/reverse_fold_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/iteration/reverse_iter_fold.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/iteration/reverse_iter_fold_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/query.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/query/all.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/query/any.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/query/count.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/query/count_if.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/query/detail/all.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/query/detail/any.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/query/detail/count.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/query/detail/count_if.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/query/detail/find_if.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/query/detail/segmented_find.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/query/detail/segmented_find_if.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/query/find.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/query/find_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/query/find_if.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/query/find_if_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/query/none.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/transformation.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/transformation/clear.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/transformation/detail/preprocessed/zip.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/transformation/detail/preprocessed/zip10.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/transformation/detail/preprocessed/zip20.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/transformation/detail/preprocessed/zip30.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/transformation/detail/preprocessed/zip40.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/transformation/detail/preprocessed/zip50.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/transformation/detail/replace.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/transformation/detail/replace_if.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/transformation/erase.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/transformation/erase_key.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/transformation/filter.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/transformation/filter_if.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/transformation/flatten.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/transformation/insert.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/transformation/insert_range.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/transformation/join.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/transformation/pop_back.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/transformation/pop_front.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/transformation/push_back.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/transformation/push_front.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/transformation/remove.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/transformation/remove_if.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/transformation/replace.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/transformation/replace_if.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/transformation/reverse.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/transformation/transform.hpp create mode 100644 libraries/boost/include/boost/fusion/algorithm/transformation/zip.hpp create mode 100644 libraries/boost/include/boost/fusion/container.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/back_extended_deque.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/convert.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/deque.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/deque_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/deque_iterator.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/begin_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/build_deque.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/convert_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/as_deque.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/build_deque.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/deque.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/deque_forward_ctor.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/deque_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/deque_initial_size.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/deque_keyed_values.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/deque_keyed_values_call.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/limits.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque10.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque20.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque30.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque40.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque50.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/preprocessed/deque.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/preprocessed/deque10.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/preprocessed/deque10_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/preprocessed/deque20.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/preprocessed/deque20_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/preprocessed/deque30.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/preprocessed/deque30_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/preprocessed/deque40.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/preprocessed/deque40_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/preprocessed/deque50.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/preprocessed/deque50_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_initial_size.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_initial_size10.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_initial_size20.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_initial_size30.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_initial_size40.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_initial_size50.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values10.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values20.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values30.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values40.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values50.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/deque_keyed_values.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/end_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/is_sequence_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/keyed_element.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/detail/value_at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/deque/front_extended_deque.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/cons_tie.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/deque_tie.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/pp_deque_tie.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/pp_list_tie.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/pp_make_deque.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/pp_make_list.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/pp_make_map.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/pp_make_set.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/pp_make_vector.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/pp_map_tie.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/pp_vector_tie.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/deque_tie.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/deque_tie10.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/deque_tie20.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/deque_tie30.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/deque_tie40.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/deque_tie50.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/list_tie.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/list_tie10.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/list_tie20.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/list_tie30.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/list_tie40.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/list_tie50.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/make_deque.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/make_deque10.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/make_deque20.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/make_deque30.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/make_deque40.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/make_deque50.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/make_list.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/make_list10.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/make_list20.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/make_list30.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/make_list40.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/make_list50.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/make_map.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/make_map10.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/make_map20.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/make_map30.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/make_map40.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/make_map50.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/make_set.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/make_set10.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/make_set20.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/make_set30.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/make_set40.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/make_set50.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/make_vector.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/make_vector10.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/make_vector20.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/make_vector30.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/make_vector40.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/make_vector50.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/map_tie.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/map_tie10.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/map_tie20.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/map_tie30.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/map_tie40.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/map_tie50.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/vector_tie.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/vector_tie10.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/vector_tie20.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/vector_tie30.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/vector_tie40.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/detail/preprocessed/vector_tie50.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/ignore.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/list_tie.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/make_cons.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/make_deque.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/make_list.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/make_map.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/make_set.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/make_vector.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/map_tie.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/pair_tie.hpp create mode 100644 libraries/boost/include/boost/fusion/container/generation/vector_tie.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/cons.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/cons_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/cons_iterator.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/convert.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/begin_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/build_cons.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/convert_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/cpp03/limits.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/cpp03/list.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/cpp03/list_forward_ctor.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/cpp03/list_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/cpp03/list_to_cons.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/cpp03/list_to_cons_call.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/cpp03/preprocessed/list.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/cpp03/preprocessed/list10.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/cpp03/preprocessed/list10_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/cpp03/preprocessed/list20.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/cpp03/preprocessed/list20_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/cpp03/preprocessed/list30.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/cpp03/preprocessed/list30_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/cpp03/preprocessed/list40.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/cpp03/preprocessed/list40_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/cpp03/preprocessed/list50.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/cpp03/preprocessed/list50_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/cpp03/preprocessed/list_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons10.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons20.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons30.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons40.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons50.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/deref_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/empty_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/end_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/equal_to_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/list_to_cons.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/next_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/reverse_cons.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/value_at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/detail/value_of_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/list.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/list_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/list/nil.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/convert.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/at_key_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/begin_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/build_map.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/as_map.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/begin_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/convert.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/convert_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/deref_data_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/deref_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/end_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/key_of_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/limits.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/map.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/map_forward_ctor.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/map_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/preprocessed/as_map.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/preprocessed/as_map10.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/preprocessed/as_map20.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/preprocessed/as_map30.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/preprocessed/as_map40.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/preprocessed/as_map50.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/preprocessed/map.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/preprocessed/map10.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/preprocessed/map10_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/preprocessed/map20.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/preprocessed/map20_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/preprocessed/map30.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/preprocessed/map30_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/preprocessed/map40.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/preprocessed/map40_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/preprocessed/map50.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/preprocessed/map50_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/preprocessed/map_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/value_at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/value_of_data_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/cpp03/value_of_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/end_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/map_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/map_index.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/value_at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/detail/value_at_key_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/map.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/map_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/map/map_iterator.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/convert.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/detail/as_set.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/detail/begin_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/detail/convert_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/detail/cpp03/as_set.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/detail/cpp03/limits.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/detail/cpp03/preprocessed/as_set.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/detail/cpp03/preprocessed/as_set10.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/detail/cpp03/preprocessed/as_set20.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/detail/cpp03/preprocessed/as_set30.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/detail/cpp03/preprocessed/as_set40.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/detail/cpp03/preprocessed/as_set50.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/detail/cpp03/preprocessed/set.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/detail/cpp03/preprocessed/set10.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/detail/cpp03/preprocessed/set10_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/detail/cpp03/preprocessed/set20.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/detail/cpp03/preprocessed/set20_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/detail/cpp03/preprocessed/set30.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/detail/cpp03/preprocessed/set30_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/detail/cpp03/preprocessed/set40.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/detail/cpp03/preprocessed/set40_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/detail/cpp03/preprocessed/set50.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/detail/cpp03/preprocessed/set50_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/detail/cpp03/preprocessed/set_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/detail/cpp03/set.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/detail/cpp03/set_forward_ctor.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/detail/cpp03/set_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/detail/deref_data_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/detail/deref_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/detail/end_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/detail/key_of_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/detail/value_of_data_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/detail/value_of_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/set.hpp create mode 100644 libraries/boost/include/boost/fusion/container/set/set_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/convert.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/advance_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/as_vector.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/begin_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/config.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/convert_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/as_vector.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/limits.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector10.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector20.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector30.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector40.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector50.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector10.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector10_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector20.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector20_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector30.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector30_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector40.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector40_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector50.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector50_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser10.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser20.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser30.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser40.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser50.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector10.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector10_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector20.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector20_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector30.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector30_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector40.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector40_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector50.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector50_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/value_at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/vector.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/vector10.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/vector10_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/vector20.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/vector20_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/vector30.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/vector30_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/vector40.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/vector40_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/vector50.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/vector50_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/vector_forward_ctor.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/vector_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/vector_n.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/cpp03/vector_n_chooser.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/deref_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/distance_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/end_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/equal_to_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/next_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/prior_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/value_at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/detail/value_of_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/vector.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/vector10.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/vector20.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/vector30.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/vector40.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/vector50.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/vector_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/container/vector/vector_iterator.hpp create mode 100644 libraries/boost/include/boost/fusion/functional.hpp create mode 100644 libraries/boost/include/boost/fusion/functional/adapter.hpp create mode 100644 libraries/boost/include/boost/fusion/functional/adapter/detail/access.hpp create mode 100644 libraries/boost/include/boost/fusion/functional/adapter/fused.hpp create mode 100644 libraries/boost/include/boost/fusion/functional/adapter/fused_function_object.hpp create mode 100644 libraries/boost/include/boost/fusion/functional/adapter/fused_procedure.hpp create mode 100644 libraries/boost/include/boost/fusion/functional/adapter/limits.hpp create mode 100644 libraries/boost/include/boost/fusion/functional/adapter/unfused.hpp create mode 100644 libraries/boost/include/boost/fusion/functional/adapter/unfused_typed.hpp create mode 100644 libraries/boost/include/boost/fusion/functional/generation.hpp create mode 100644 libraries/boost/include/boost/fusion/functional/generation/detail/gen_make_adapter.hpp create mode 100644 libraries/boost/include/boost/fusion/functional/generation/make_fused.hpp create mode 100644 libraries/boost/include/boost/fusion/functional/generation/make_fused_function_object.hpp create mode 100644 libraries/boost/include/boost/fusion/functional/generation/make_fused_procedure.hpp create mode 100644 libraries/boost/include/boost/fusion/functional/generation/make_unfused.hpp create mode 100644 libraries/boost/include/boost/fusion/functional/invocation.hpp create mode 100644 libraries/boost/include/boost/fusion/functional/invocation/detail/that_ptr.hpp create mode 100644 libraries/boost/include/boost/fusion/functional/invocation/invoke.hpp create mode 100644 libraries/boost/include/boost/fusion/functional/invocation/invoke_function_object.hpp create mode 100644 libraries/boost/include/boost/fusion/functional/invocation/invoke_procedure.hpp create mode 100644 libraries/boost/include/boost/fusion/functional/invocation/limits.hpp create mode 100644 libraries/boost/include/boost/fusion/include/accumulate.hpp create mode 100644 libraries/boost/include/boost/fusion/include/adapt_adt.hpp create mode 100644 libraries/boost/include/boost/fusion/include/adapt_adt_named.hpp create mode 100644 libraries/boost/include/boost/fusion/include/adapt_assoc_adt.hpp create mode 100644 libraries/boost/include/boost/fusion/include/adapt_assoc_adt_named.hpp create mode 100644 libraries/boost/include/boost/fusion/include/adapt_assoc_struct.hpp create mode 100644 libraries/boost/include/boost/fusion/include/adapt_assoc_struct_named.hpp create mode 100644 libraries/boost/include/boost/fusion/include/adapt_struct.hpp create mode 100644 libraries/boost/include/boost/fusion/include/adapt_struct_named.hpp create mode 100644 libraries/boost/include/boost/fusion/include/adapted.hpp create mode 100644 libraries/boost/include/boost/fusion/include/adapter.hpp create mode 100644 libraries/boost/include/boost/fusion/include/advance.hpp create mode 100644 libraries/boost/include/boost/fusion/include/algorithm.hpp create mode 100644 libraries/boost/include/boost/fusion/include/all.hpp create mode 100644 libraries/boost/include/boost/fusion/include/any.hpp create mode 100644 libraries/boost/include/boost/fusion/include/array.hpp create mode 100644 libraries/boost/include/boost/fusion/include/as_deque.hpp create mode 100644 libraries/boost/include/boost/fusion/include/as_list.hpp create mode 100644 libraries/boost/include/boost/fusion/include/as_map.hpp create mode 100644 libraries/boost/include/boost/fusion/include/as_set.hpp create mode 100644 libraries/boost/include/boost/fusion/include/as_vector.hpp create mode 100644 libraries/boost/include/boost/fusion/include/at.hpp create mode 100644 libraries/boost/include/boost/fusion/include/at_c.hpp create mode 100644 libraries/boost/include/boost/fusion/include/at_key.hpp create mode 100644 libraries/boost/include/boost/fusion/include/auxiliary.hpp create mode 100644 libraries/boost/include/boost/fusion/include/back.hpp create mode 100644 libraries/boost/include/boost/fusion/include/begin.hpp create mode 100644 libraries/boost/include/boost/fusion/include/boost_array.hpp create mode 100644 libraries/boost/include/boost/fusion/include/boost_tuple.hpp create mode 100644 libraries/boost/include/boost/fusion/include/category_of.hpp create mode 100644 libraries/boost/include/boost/fusion/include/clear.hpp create mode 100644 libraries/boost/include/boost/fusion/include/comparison.hpp create mode 100644 libraries/boost/include/boost/fusion/include/cons.hpp create mode 100644 libraries/boost/include/boost/fusion/include/cons_tie.hpp create mode 100644 libraries/boost/include/boost/fusion/include/container.hpp create mode 100644 libraries/boost/include/boost/fusion/include/convert.hpp create mode 100644 libraries/boost/include/boost/fusion/include/copy.hpp create mode 100644 libraries/boost/include/boost/fusion/include/count.hpp create mode 100644 libraries/boost/include/boost/fusion/include/count_if.hpp create mode 100644 libraries/boost/include/boost/fusion/include/deduce.hpp create mode 100644 libraries/boost/include/boost/fusion/include/deduce_sequence.hpp create mode 100644 libraries/boost/include/boost/fusion/include/define_assoc_struct.hpp create mode 100644 libraries/boost/include/boost/fusion/include/define_struct.hpp create mode 100644 libraries/boost/include/boost/fusion/include/define_struct_inline.hpp create mode 100644 libraries/boost/include/boost/fusion/include/deque.hpp create mode 100644 libraries/boost/include/boost/fusion/include/deque_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/include/deque_tie.hpp create mode 100644 libraries/boost/include/boost/fusion/include/deref.hpp create mode 100644 libraries/boost/include/boost/fusion/include/deref_data.hpp create mode 100644 libraries/boost/include/boost/fusion/include/distance.hpp create mode 100644 libraries/boost/include/boost/fusion/include/empty.hpp create mode 100644 libraries/boost/include/boost/fusion/include/end.hpp create mode 100644 libraries/boost/include/boost/fusion/include/equal_to.hpp create mode 100644 libraries/boost/include/boost/fusion/include/erase.hpp create mode 100644 libraries/boost/include/boost/fusion/include/erase_key.hpp create mode 100644 libraries/boost/include/boost/fusion/include/filter.hpp create mode 100644 libraries/boost/include/boost/fusion/include/filter_if.hpp create mode 100644 libraries/boost/include/boost/fusion/include/filter_view.hpp create mode 100644 libraries/boost/include/boost/fusion/include/find.hpp create mode 100644 libraries/boost/include/boost/fusion/include/find_if.hpp create mode 100644 libraries/boost/include/boost/fusion/include/flatten.hpp create mode 100644 libraries/boost/include/boost/fusion/include/flatten_view.hpp create mode 100644 libraries/boost/include/boost/fusion/include/fold.hpp create mode 100644 libraries/boost/include/boost/fusion/include/for_each.hpp create mode 100644 libraries/boost/include/boost/fusion/include/front.hpp create mode 100644 libraries/boost/include/boost/fusion/include/functional.hpp create mode 100644 libraries/boost/include/boost/fusion/include/fused.hpp create mode 100644 libraries/boost/include/boost/fusion/include/fused_function_object.hpp create mode 100644 libraries/boost/include/boost/fusion/include/fused_procedure.hpp create mode 100644 libraries/boost/include/boost/fusion/include/generation.hpp create mode 100644 libraries/boost/include/boost/fusion/include/greater.hpp create mode 100644 libraries/boost/include/boost/fusion/include/greater_equal.hpp create mode 100644 libraries/boost/include/boost/fusion/include/has_key.hpp create mode 100644 libraries/boost/include/boost/fusion/include/hash.hpp create mode 100644 libraries/boost/include/boost/fusion/include/ignore.hpp create mode 100644 libraries/boost/include/boost/fusion/include/in.hpp create mode 100644 libraries/boost/include/boost/fusion/include/insert.hpp create mode 100644 libraries/boost/include/boost/fusion/include/insert_range.hpp create mode 100644 libraries/boost/include/boost/fusion/include/intrinsic.hpp create mode 100644 libraries/boost/include/boost/fusion/include/invocation.hpp create mode 100644 libraries/boost/include/boost/fusion/include/invoke.hpp create mode 100644 libraries/boost/include/boost/fusion/include/invoke_function_object.hpp create mode 100644 libraries/boost/include/boost/fusion/include/invoke_procedure.hpp create mode 100644 libraries/boost/include/boost/fusion/include/io.hpp create mode 100644 libraries/boost/include/boost/fusion/include/is_iterator.hpp create mode 100644 libraries/boost/include/boost/fusion/include/is_segmented.hpp create mode 100644 libraries/boost/include/boost/fusion/include/is_sequence.hpp create mode 100644 libraries/boost/include/boost/fusion/include/is_view.hpp create mode 100644 libraries/boost/include/boost/fusion/include/iter_fold.hpp create mode 100644 libraries/boost/include/boost/fusion/include/iteration.hpp create mode 100644 libraries/boost/include/boost/fusion/include/iterator.hpp create mode 100644 libraries/boost/include/boost/fusion/include/iterator_adapter.hpp create mode 100644 libraries/boost/include/boost/fusion/include/iterator_base.hpp create mode 100644 libraries/boost/include/boost/fusion/include/iterator_facade.hpp create mode 100644 libraries/boost/include/boost/fusion/include/iterator_range.hpp create mode 100644 libraries/boost/include/boost/fusion/include/join.hpp create mode 100644 libraries/boost/include/boost/fusion/include/joint_view.hpp create mode 100644 libraries/boost/include/boost/fusion/include/key_of.hpp create mode 100644 libraries/boost/include/boost/fusion/include/less.hpp create mode 100644 libraries/boost/include/boost/fusion/include/less_equal.hpp create mode 100644 libraries/boost/include/boost/fusion/include/list.hpp create mode 100644 libraries/boost/include/boost/fusion/include/list_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/include/list_tie.hpp create mode 100644 libraries/boost/include/boost/fusion/include/make_cons.hpp create mode 100644 libraries/boost/include/boost/fusion/include/make_deque.hpp create mode 100644 libraries/boost/include/boost/fusion/include/make_fused.hpp create mode 100644 libraries/boost/include/boost/fusion/include/make_fused_function_object.hpp create mode 100644 libraries/boost/include/boost/fusion/include/make_fused_procedure.hpp create mode 100644 libraries/boost/include/boost/fusion/include/make_list.hpp create mode 100644 libraries/boost/include/boost/fusion/include/make_map.hpp create mode 100644 libraries/boost/include/boost/fusion/include/make_set.hpp create mode 100644 libraries/boost/include/boost/fusion/include/make_tuple.hpp create mode 100644 libraries/boost/include/boost/fusion/include/make_unfused.hpp create mode 100644 libraries/boost/include/boost/fusion/include/make_vector.hpp create mode 100644 libraries/boost/include/boost/fusion/include/map.hpp create mode 100644 libraries/boost/include/boost/fusion/include/map_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/include/map_tie.hpp create mode 100644 libraries/boost/include/boost/fusion/include/move.hpp create mode 100644 libraries/boost/include/boost/fusion/include/mpl.hpp create mode 100644 libraries/boost/include/boost/fusion/include/next.hpp create mode 100644 libraries/boost/include/boost/fusion/include/nil.hpp create mode 100644 libraries/boost/include/boost/fusion/include/none.hpp create mode 100644 libraries/boost/include/boost/fusion/include/not_equal_to.hpp create mode 100644 libraries/boost/include/boost/fusion/include/nview.hpp create mode 100644 libraries/boost/include/boost/fusion/include/out.hpp create mode 100644 libraries/boost/include/boost/fusion/include/pair.hpp create mode 100644 libraries/boost/include/boost/fusion/include/pair_tie.hpp create mode 100644 libraries/boost/include/boost/fusion/include/pop_back.hpp create mode 100644 libraries/boost/include/boost/fusion/include/pop_front.hpp create mode 100644 libraries/boost/include/boost/fusion/include/prior.hpp create mode 100644 libraries/boost/include/boost/fusion/include/proxy_type.hpp create mode 100644 libraries/boost/include/boost/fusion/include/push_back.hpp create mode 100644 libraries/boost/include/boost/fusion/include/push_front.hpp create mode 100644 libraries/boost/include/boost/fusion/include/query.hpp create mode 100644 libraries/boost/include/boost/fusion/include/remove.hpp create mode 100644 libraries/boost/include/boost/fusion/include/remove_if.hpp create mode 100644 libraries/boost/include/boost/fusion/include/repetitive_view.hpp create mode 100644 libraries/boost/include/boost/fusion/include/replace.hpp create mode 100644 libraries/boost/include/boost/fusion/include/replace_if.hpp create mode 100644 libraries/boost/include/boost/fusion/include/reverse.hpp create mode 100644 libraries/boost/include/boost/fusion/include/reverse_fold.hpp create mode 100644 libraries/boost/include/boost/fusion/include/reverse_iter_fold.hpp create mode 100644 libraries/boost/include/boost/fusion/include/reverse_view.hpp create mode 100644 libraries/boost/include/boost/fusion/include/segmented_fold_until.hpp create mode 100644 libraries/boost/include/boost/fusion/include/segmented_iterator.hpp create mode 100644 libraries/boost/include/boost/fusion/include/segments.hpp create mode 100644 libraries/boost/include/boost/fusion/include/sequence.hpp create mode 100644 libraries/boost/include/boost/fusion/include/sequence_base.hpp create mode 100644 libraries/boost/include/boost/fusion/include/sequence_facade.hpp create mode 100644 libraries/boost/include/boost/fusion/include/set.hpp create mode 100644 libraries/boost/include/boost/fusion/include/set_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/include/single_view.hpp create mode 100644 libraries/boost/include/boost/fusion/include/size.hpp create mode 100644 libraries/boost/include/boost/fusion/include/std_array.hpp create mode 100644 libraries/boost/include/boost/fusion/include/std_pair.hpp create mode 100644 libraries/boost/include/boost/fusion/include/std_tuple.hpp create mode 100644 libraries/boost/include/boost/fusion/include/struct.hpp create mode 100644 libraries/boost/include/boost/fusion/include/support.hpp create mode 100644 libraries/boost/include/boost/fusion/include/swap.hpp create mode 100644 libraries/boost/include/boost/fusion/include/tag_of.hpp create mode 100644 libraries/boost/include/boost/fusion/include/tag_of_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/include/transform.hpp create mode 100644 libraries/boost/include/boost/fusion/include/transform_view.hpp create mode 100644 libraries/boost/include/boost/fusion/include/transformation.hpp create mode 100644 libraries/boost/include/boost/fusion/include/tuple.hpp create mode 100644 libraries/boost/include/boost/fusion/include/tuple_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/include/tuple_tie.hpp create mode 100644 libraries/boost/include/boost/fusion/include/unfused.hpp create mode 100644 libraries/boost/include/boost/fusion/include/unfused_typed.hpp create mode 100644 libraries/boost/include/boost/fusion/include/unused.hpp create mode 100644 libraries/boost/include/boost/fusion/include/value_at.hpp create mode 100644 libraries/boost/include/boost/fusion/include/value_at_key.hpp create mode 100644 libraries/boost/include/boost/fusion/include/value_of.hpp create mode 100644 libraries/boost/include/boost/fusion/include/value_of_data.hpp create mode 100644 libraries/boost/include/boost/fusion/include/vector.hpp create mode 100644 libraries/boost/include/boost/fusion/include/vector10.hpp create mode 100644 libraries/boost/include/boost/fusion/include/vector20.hpp create mode 100644 libraries/boost/include/boost/fusion/include/vector30.hpp create mode 100644 libraries/boost/include/boost/fusion/include/vector40.hpp create mode 100644 libraries/boost/include/boost/fusion/include/vector50.hpp create mode 100644 libraries/boost/include/boost/fusion/include/vector_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/include/vector_tie.hpp create mode 100644 libraries/boost/include/boost/fusion/include/view.hpp create mode 100644 libraries/boost/include/boost/fusion/include/void.hpp create mode 100644 libraries/boost/include/boost/fusion/include/zip.hpp create mode 100644 libraries/boost/include/boost/fusion/include/zip_view.hpp create mode 100644 libraries/boost/include/boost/fusion/iterator.hpp create mode 100644 libraries/boost/include/boost/fusion/iterator/advance.hpp create mode 100644 libraries/boost/include/boost/fusion/iterator/basic_iterator.hpp create mode 100644 libraries/boost/include/boost/fusion/iterator/deref.hpp create mode 100644 libraries/boost/include/boost/fusion/iterator/deref_data.hpp create mode 100644 libraries/boost/include/boost/fusion/iterator/detail/adapt_deref_traits.hpp create mode 100644 libraries/boost/include/boost/fusion/iterator/detail/adapt_value_traits.hpp create mode 100644 libraries/boost/include/boost/fusion/iterator/detail/advance.hpp create mode 100644 libraries/boost/include/boost/fusion/iterator/detail/distance.hpp create mode 100644 libraries/boost/include/boost/fusion/iterator/detail/segment_sequence.hpp create mode 100644 libraries/boost/include/boost/fusion/iterator/detail/segmented_equal_to.hpp create mode 100644 libraries/boost/include/boost/fusion/iterator/detail/segmented_iterator.hpp create mode 100644 libraries/boost/include/boost/fusion/iterator/detail/segmented_next_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/iterator/distance.hpp create mode 100644 libraries/boost/include/boost/fusion/iterator/equal_to.hpp create mode 100644 libraries/boost/include/boost/fusion/iterator/iterator_adapter.hpp create mode 100644 libraries/boost/include/boost/fusion/iterator/iterator_facade.hpp create mode 100644 libraries/boost/include/boost/fusion/iterator/key_of.hpp create mode 100644 libraries/boost/include/boost/fusion/iterator/mpl.hpp create mode 100644 libraries/boost/include/boost/fusion/iterator/mpl/convert_iterator.hpp create mode 100644 libraries/boost/include/boost/fusion/iterator/mpl/fusion_iterator.hpp create mode 100644 libraries/boost/include/boost/fusion/iterator/next.hpp create mode 100644 libraries/boost/include/boost/fusion/iterator/prior.hpp create mode 100644 libraries/boost/include/boost/fusion/iterator/segmented_iterator.hpp create mode 100644 libraries/boost/include/boost/fusion/iterator/value_of.hpp create mode 100644 libraries/boost/include/boost/fusion/iterator/value_of_data.hpp create mode 100644 libraries/boost/include/boost/fusion/mpl.hpp create mode 100644 libraries/boost/include/boost/fusion/mpl/at.hpp create mode 100644 libraries/boost/include/boost/fusion/mpl/back.hpp create mode 100644 libraries/boost/include/boost/fusion/mpl/begin.hpp create mode 100644 libraries/boost/include/boost/fusion/mpl/clear.hpp create mode 100644 libraries/boost/include/boost/fusion/mpl/detail/clear.hpp create mode 100644 libraries/boost/include/boost/fusion/mpl/empty.hpp create mode 100644 libraries/boost/include/boost/fusion/mpl/end.hpp create mode 100644 libraries/boost/include/boost/fusion/mpl/erase.hpp create mode 100644 libraries/boost/include/boost/fusion/mpl/erase_key.hpp create mode 100644 libraries/boost/include/boost/fusion/mpl/front.hpp create mode 100644 libraries/boost/include/boost/fusion/mpl/has_key.hpp create mode 100644 libraries/boost/include/boost/fusion/mpl/insert.hpp create mode 100644 libraries/boost/include/boost/fusion/mpl/insert_range.hpp create mode 100644 libraries/boost/include/boost/fusion/mpl/pop_back.hpp create mode 100644 libraries/boost/include/boost/fusion/mpl/pop_front.hpp create mode 100644 libraries/boost/include/boost/fusion/mpl/push_back.hpp create mode 100644 libraries/boost/include/boost/fusion/mpl/push_front.hpp create mode 100644 libraries/boost/include/boost/fusion/mpl/size.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/comparison.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/comparison/detail/equal_to.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/comparison/detail/greater.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/comparison/detail/greater_equal.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/comparison/detail/less.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/comparison/detail/less_equal.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/comparison/detail/not_equal_to.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/comparison/enable_comparison.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/comparison/equal_to.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/comparison/greater.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/comparison/greater_equal.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/comparison/less.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/comparison/less_equal.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/comparison/not_equal_to.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/convert.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/hash.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/intrinsic.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/intrinsic/at.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/intrinsic/at_c.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/intrinsic/at_key.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/intrinsic/back.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/intrinsic/begin.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/intrinsic/detail/segmented_size.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/intrinsic/empty.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/intrinsic/end.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/intrinsic/front.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/intrinsic/has_key.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/intrinsic/segments.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/intrinsic/size.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/intrinsic/swap.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/intrinsic/value_at.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/intrinsic/value_at_key.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/intrinsic_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/io.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/io/detail/in.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/io/detail/manip.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/io/detail/out.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/io/in.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/io/out.hpp create mode 100644 libraries/boost/include/boost/fusion/sequence/sequence_facade.hpp create mode 100644 libraries/boost/include/boost/fusion/support.hpp create mode 100644 libraries/boost/include/boost/fusion/support/as_const.hpp create mode 100644 libraries/boost/include/boost/fusion/support/category_of.hpp create mode 100644 libraries/boost/include/boost/fusion/support/config.hpp create mode 100644 libraries/boost/include/boost/fusion/support/deduce.hpp create mode 100644 libraries/boost/include/boost/fusion/support/deduce_sequence.hpp create mode 100644 libraries/boost/include/boost/fusion/support/detail/access.hpp create mode 100644 libraries/boost/include/boost/fusion/support/detail/and.hpp create mode 100644 libraries/boost/include/boost/fusion/support/detail/as_fusion_element.hpp create mode 100644 libraries/boost/include/boost/fusion/support/detail/category_of.hpp create mode 100644 libraries/boost/include/boost/fusion/support/detail/enabler.hpp create mode 100644 libraries/boost/include/boost/fusion/support/detail/index_sequence.hpp create mode 100644 libraries/boost/include/boost/fusion/support/detail/is_mpl_sequence.hpp create mode 100644 libraries/boost/include/boost/fusion/support/detail/is_same_size.hpp create mode 100644 libraries/boost/include/boost/fusion/support/detail/is_view.hpp create mode 100644 libraries/boost/include/boost/fusion/support/detail/mpl_iterator_category.hpp create mode 100644 libraries/boost/include/boost/fusion/support/detail/pp_round.hpp create mode 100644 libraries/boost/include/boost/fusion/support/detail/segmented_fold_until_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/support/detail/unknown_key.hpp create mode 100644 libraries/boost/include/boost/fusion/support/is_iterator.hpp create mode 100644 libraries/boost/include/boost/fusion/support/is_segmented.hpp create mode 100644 libraries/boost/include/boost/fusion/support/is_sequence.hpp create mode 100644 libraries/boost/include/boost/fusion/support/is_view.hpp create mode 100644 libraries/boost/include/boost/fusion/support/iterator_base.hpp create mode 100644 libraries/boost/include/boost/fusion/support/pair.hpp create mode 100644 libraries/boost/include/boost/fusion/support/segmented_fold_until.hpp create mode 100644 libraries/boost/include/boost/fusion/support/sequence_base.hpp create mode 100644 libraries/boost/include/boost/fusion/support/tag_of.hpp create mode 100644 libraries/boost/include/boost/fusion/support/tag_of_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/support/unused.hpp create mode 100644 libraries/boost/include/boost/fusion/support/void.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple/detail/make_tuple.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple/detail/preprocessed/make_tuple.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple/detail/preprocessed/make_tuple10.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple/detail/preprocessed/make_tuple20.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple/detail/preprocessed/make_tuple30.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple/detail/preprocessed/make_tuple40.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple/detail/preprocessed/make_tuple50.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple/detail/preprocessed/tuple.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple/detail/preprocessed/tuple10.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple/detail/preprocessed/tuple10_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple/detail/preprocessed/tuple20.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple/detail/preprocessed/tuple20_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple/detail/preprocessed/tuple30.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple/detail/preprocessed/tuple30_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple/detail/preprocessed/tuple40.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple/detail/preprocessed/tuple40_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple/detail/preprocessed/tuple50.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple/detail/preprocessed/tuple50_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple/detail/preprocessed/tuple_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple/detail/preprocessed/tuple_tie.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple/detail/preprocessed/tuple_tie10.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple/detail/preprocessed/tuple_tie20.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple/detail/preprocessed/tuple_tie30.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple/detail/preprocessed/tuple_tie40.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple/detail/preprocessed/tuple_tie50.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple/detail/tuple.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple/detail/tuple_expand.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple/detail/tuple_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple/detail/tuple_tie.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple/make_tuple.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple/tuple.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple/tuple_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/tuple/tuple_tie.hpp create mode 100644 libraries/boost/include/boost/fusion/view.hpp create mode 100644 libraries/boost/include/boost/fusion/view/detail/strictest_traversal.hpp create mode 100644 libraries/boost/include/boost/fusion/view/filter_view.hpp create mode 100644 libraries/boost/include/boost/fusion/view/filter_view/detail/begin_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/filter_view/detail/deref_data_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/filter_view/detail/deref_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/filter_view/detail/end_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/filter_view/detail/equal_to_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/filter_view/detail/key_of_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/filter_view/detail/next_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/filter_view/detail/size_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/filter_view/detail/value_of_data_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/filter_view/detail/value_of_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/filter_view/filter_view.hpp create mode 100644 libraries/boost/include/boost/fusion/view/filter_view/filter_view_iterator.hpp create mode 100644 libraries/boost/include/boost/fusion/view/flatten_view.hpp create mode 100644 libraries/boost/include/boost/fusion/view/flatten_view/flatten_view.hpp create mode 100644 libraries/boost/include/boost/fusion/view/flatten_view/flatten_view_iterator.hpp create mode 100644 libraries/boost/include/boost/fusion/view/iterator_range.hpp create mode 100644 libraries/boost/include/boost/fusion/view/iterator_range/detail/at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/iterator_range/detail/begin_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/iterator_range/detail/end_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/iterator_range/detail/is_segmented_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/iterator_range/detail/segmented_iterator_range.hpp create mode 100644 libraries/boost/include/boost/fusion/view/iterator_range/detail/segments_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/iterator_range/detail/size_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/iterator_range/detail/value_at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/iterator_range/iterator_range.hpp create mode 100644 libraries/boost/include/boost/fusion/view/joint_view.hpp create mode 100644 libraries/boost/include/boost/fusion/view/joint_view/detail/begin_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/joint_view/detail/deref_data_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/joint_view/detail/deref_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/joint_view/detail/end_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/joint_view/detail/key_of_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/joint_view/detail/next_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/joint_view/detail/value_of_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/joint_view/joint_view.hpp create mode 100644 libraries/boost/include/boost/fusion/view/joint_view/joint_view_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/view/joint_view/joint_view_iterator.hpp create mode 100644 libraries/boost/include/boost/fusion/view/nview.hpp create mode 100644 libraries/boost/include/boost/fusion/view/nview/detail/advance_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/nview/detail/at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/nview/detail/begin_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/nview/detail/cpp03/nview_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/nview/detail/deref_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/nview/detail/distance_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/nview/detail/end_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/nview/detail/equal_to_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/nview/detail/next_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/nview/detail/nview_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/nview/detail/prior_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/nview/detail/size_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/nview/detail/value_at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/nview/detail/value_of_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/nview/nview.hpp create mode 100644 libraries/boost/include/boost/fusion/view/nview/nview_iterator.hpp create mode 100644 libraries/boost/include/boost/fusion/view/repetitive_view.hpp create mode 100644 libraries/boost/include/boost/fusion/view/repetitive_view/detail/begin_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/repetitive_view/detail/deref_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/repetitive_view/detail/end_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/repetitive_view/detail/next_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/repetitive_view/detail/value_of_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/repetitive_view/repetitive_view.hpp create mode 100644 libraries/boost/include/boost/fusion/view/repetitive_view/repetitive_view_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/view/repetitive_view/repetitive_view_iterator.hpp create mode 100644 libraries/boost/include/boost/fusion/view/reverse_view.hpp create mode 100644 libraries/boost/include/boost/fusion/view/reverse_view/detail/advance_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/reverse_view/detail/at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/reverse_view/detail/begin_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/reverse_view/detail/deref_data_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/reverse_view/detail/deref_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/reverse_view/detail/distance_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/reverse_view/detail/end_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/reverse_view/detail/key_of_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/reverse_view/detail/next_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/reverse_view/detail/prior_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/reverse_view/detail/value_at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/reverse_view/detail/value_of_data_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/reverse_view/detail/value_of_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/reverse_view/reverse_view.hpp create mode 100644 libraries/boost/include/boost/fusion/view/reverse_view/reverse_view_iterator.hpp create mode 100644 libraries/boost/include/boost/fusion/view/single_view.hpp create mode 100644 libraries/boost/include/boost/fusion/view/single_view/detail/advance_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/single_view/detail/at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/single_view/detail/begin_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/single_view/detail/deref_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/single_view/detail/distance_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/single_view/detail/end_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/single_view/detail/equal_to_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/single_view/detail/next_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/single_view/detail/prior_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/single_view/detail/size_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/single_view/detail/value_at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/single_view/detail/value_of_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/single_view/single_view.hpp create mode 100644 libraries/boost/include/boost/fusion/view/single_view/single_view_iterator.hpp create mode 100644 libraries/boost/include/boost/fusion/view/transform_view.hpp create mode 100644 libraries/boost/include/boost/fusion/view/transform_view/detail/advance_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/transform_view/detail/apply_transform_result.hpp create mode 100644 libraries/boost/include/boost/fusion/view/transform_view/detail/at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/transform_view/detail/begin_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/transform_view/detail/deref_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/transform_view/detail/distance_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/transform_view/detail/end_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/transform_view/detail/equal_to_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/transform_view/detail/next_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/transform_view/detail/prior_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/transform_view/detail/value_at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/transform_view/detail/value_of_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/transform_view/transform_view.hpp create mode 100644 libraries/boost/include/boost/fusion/view/transform_view/transform_view_fwd.hpp create mode 100644 libraries/boost/include/boost/fusion/view/transform_view/transform_view_iterator.hpp create mode 100644 libraries/boost/include/boost/fusion/view/zip_view.hpp create mode 100644 libraries/boost/include/boost/fusion/view/zip_view/detail/advance_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/zip_view/detail/at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/zip_view/detail/begin_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/zip_view/detail/deref_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/zip_view/detail/distance_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/zip_view/detail/end_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/zip_view/detail/equal_to_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/zip_view/detail/next_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/zip_view/detail/prior_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/zip_view/detail/size_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/zip_view/detail/value_at_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/zip_view/detail/value_of_impl.hpp create mode 100644 libraries/boost/include/boost/fusion/view/zip_view/zip_view.hpp create mode 100644 libraries/boost/include/boost/fusion/view/zip_view/zip_view_iterator.hpp create mode 100644 libraries/boost/include/boost/fusion/view/zip_view/zip_view_iterator_fwd.hpp create mode 100644 libraries/boost/include/boost/hana.hpp create mode 100644 libraries/boost/include/boost/hana/accessors.hpp create mode 100644 libraries/boost/include/boost/hana/adapt_adt.hpp create mode 100644 libraries/boost/include/boost/hana/adapt_struct.hpp create mode 100644 libraries/boost/include/boost/hana/adjust.hpp create mode 100644 libraries/boost/include/boost/hana/adjust_if.hpp create mode 100644 libraries/boost/include/boost/hana/all.hpp create mode 100644 libraries/boost/include/boost/hana/all_of.hpp create mode 100644 libraries/boost/include/boost/hana/and.hpp create mode 100644 libraries/boost/include/boost/hana/any.hpp create mode 100644 libraries/boost/include/boost/hana/any_of.hpp create mode 100644 libraries/boost/include/boost/hana/ap.hpp create mode 100644 libraries/boost/include/boost/hana/append.hpp create mode 100644 libraries/boost/include/boost/hana/assert.hpp create mode 100644 libraries/boost/include/boost/hana/at.hpp create mode 100644 libraries/boost/include/boost/hana/at_key.hpp create mode 100644 libraries/boost/include/boost/hana/back.hpp create mode 100644 libraries/boost/include/boost/hana/basic_tuple.hpp create mode 100644 libraries/boost/include/boost/hana/bool.hpp create mode 100644 libraries/boost/include/boost/hana/cartesian_product.hpp create mode 100644 libraries/boost/include/boost/hana/chain.hpp create mode 100644 libraries/boost/include/boost/hana/comparing.hpp create mode 100644 libraries/boost/include/boost/hana/concat.hpp create mode 100644 libraries/boost/include/boost/hana/concept.hpp create mode 100644 libraries/boost/include/boost/hana/concept/applicative.hpp create mode 100644 libraries/boost/include/boost/hana/concept/comonad.hpp create mode 100644 libraries/boost/include/boost/hana/concept/comparable.hpp create mode 100644 libraries/boost/include/boost/hana/concept/constant.hpp create mode 100644 libraries/boost/include/boost/hana/concept/euclidean_ring.hpp create mode 100644 libraries/boost/include/boost/hana/concept/foldable.hpp create mode 100644 libraries/boost/include/boost/hana/concept/functor.hpp create mode 100644 libraries/boost/include/boost/hana/concept/group.hpp create mode 100644 libraries/boost/include/boost/hana/concept/hashable.hpp create mode 100644 libraries/boost/include/boost/hana/concept/integral_constant.hpp create mode 100644 libraries/boost/include/boost/hana/concept/iterable.hpp create mode 100644 libraries/boost/include/boost/hana/concept/logical.hpp create mode 100644 libraries/boost/include/boost/hana/concept/metafunction.hpp create mode 100644 libraries/boost/include/boost/hana/concept/monad.hpp create mode 100644 libraries/boost/include/boost/hana/concept/monad_plus.hpp create mode 100644 libraries/boost/include/boost/hana/concept/monoid.hpp create mode 100644 libraries/boost/include/boost/hana/concept/orderable.hpp create mode 100644 libraries/boost/include/boost/hana/concept/product.hpp create mode 100644 libraries/boost/include/boost/hana/concept/ring.hpp create mode 100644 libraries/boost/include/boost/hana/concept/searchable.hpp create mode 100644 libraries/boost/include/boost/hana/concept/sequence.hpp create mode 100644 libraries/boost/include/boost/hana/concept/struct.hpp create mode 100644 libraries/boost/include/boost/hana/config.hpp create mode 100644 libraries/boost/include/boost/hana/contains.hpp create mode 100644 libraries/boost/include/boost/hana/core.hpp create mode 100644 libraries/boost/include/boost/hana/core/common.hpp create mode 100644 libraries/boost/include/boost/hana/core/default.hpp create mode 100644 libraries/boost/include/boost/hana/core/dispatch.hpp create mode 100644 libraries/boost/include/boost/hana/core/is_a.hpp create mode 100644 libraries/boost/include/boost/hana/core/make.hpp create mode 100644 libraries/boost/include/boost/hana/core/tag_of.hpp create mode 100644 libraries/boost/include/boost/hana/core/to.hpp create mode 100644 libraries/boost/include/boost/hana/core/when.hpp create mode 100644 libraries/boost/include/boost/hana/count.hpp create mode 100644 libraries/boost/include/boost/hana/count_if.hpp create mode 100644 libraries/boost/include/boost/hana/cycle.hpp create mode 100644 libraries/boost/include/boost/hana/define_struct.hpp create mode 100644 libraries/boost/include/boost/hana/detail/algorithm.hpp create mode 100644 libraries/boost/include/boost/hana/detail/any_of.hpp create mode 100644 libraries/boost/include/boost/hana/detail/array.hpp create mode 100644 libraries/boost/include/boost/hana/detail/canonical_constant.hpp create mode 100644 libraries/boost/include/boost/hana/detail/concepts.hpp create mode 100644 libraries/boost/include/boost/hana/detail/create.hpp create mode 100644 libraries/boost/include/boost/hana/detail/decay.hpp create mode 100644 libraries/boost/include/boost/hana/detail/dispatch_if.hpp create mode 100644 libraries/boost/include/boost/hana/detail/ebo.hpp create mode 100644 libraries/boost/include/boost/hana/detail/fast_and.hpp create mode 100644 libraries/boost/include/boost/hana/detail/first_unsatisfied_index.hpp create mode 100644 libraries/boost/include/boost/hana/detail/has_common_embedding.hpp create mode 100644 libraries/boost/include/boost/hana/detail/has_duplicates.hpp create mode 100644 libraries/boost/include/boost/hana/detail/hash_table.hpp create mode 100644 libraries/boost/include/boost/hana/detail/index_if.hpp create mode 100644 libraries/boost/include/boost/hana/detail/integral_constant.hpp create mode 100644 libraries/boost/include/boost/hana/detail/intrinsics.hpp create mode 100644 libraries/boost/include/boost/hana/detail/nested_by.hpp create mode 100644 libraries/boost/include/boost/hana/detail/nested_by_fwd.hpp create mode 100644 libraries/boost/include/boost/hana/detail/nested_than.hpp create mode 100644 libraries/boost/include/boost/hana/detail/nested_than_fwd.hpp create mode 100644 libraries/boost/include/boost/hana/detail/nested_to.hpp create mode 100644 libraries/boost/include/boost/hana/detail/nested_to_fwd.hpp create mode 100644 libraries/boost/include/boost/hana/detail/operators/adl.hpp create mode 100644 libraries/boost/include/boost/hana/detail/operators/arithmetic.hpp create mode 100644 libraries/boost/include/boost/hana/detail/operators/comparable.hpp create mode 100644 libraries/boost/include/boost/hana/detail/operators/iterable.hpp create mode 100644 libraries/boost/include/boost/hana/detail/operators/logical.hpp create mode 100644 libraries/boost/include/boost/hana/detail/operators/monad.hpp create mode 100644 libraries/boost/include/boost/hana/detail/operators/orderable.hpp create mode 100644 libraries/boost/include/boost/hana/detail/operators/searchable.hpp create mode 100644 libraries/boost/include/boost/hana/detail/preprocessor.hpp create mode 100644 libraries/boost/include/boost/hana/detail/std_common_type.hpp create mode 100644 libraries/boost/include/boost/hana/detail/struct_macros.hpp create mode 100644 libraries/boost/include/boost/hana/detail/struct_macros.hpp.erb create mode 100644 libraries/boost/include/boost/hana/detail/type_at.hpp create mode 100644 libraries/boost/include/boost/hana/detail/type_foldl1.hpp create mode 100644 libraries/boost/include/boost/hana/detail/type_foldr1.hpp create mode 100644 libraries/boost/include/boost/hana/detail/unpack_flatten.hpp create mode 100644 libraries/boost/include/boost/hana/detail/variadic/at.hpp create mode 100644 libraries/boost/include/boost/hana/detail/variadic/drop_into.hpp create mode 100644 libraries/boost/include/boost/hana/detail/variadic/foldl1.hpp create mode 100644 libraries/boost/include/boost/hana/detail/variadic/foldr1.hpp create mode 100644 libraries/boost/include/boost/hana/detail/variadic/reverse_apply.hpp create mode 100644 libraries/boost/include/boost/hana/detail/variadic/reverse_apply/flat.hpp create mode 100644 libraries/boost/include/boost/hana/detail/variadic/reverse_apply/unrolled.hpp create mode 100644 libraries/boost/include/boost/hana/detail/variadic/split_at.hpp create mode 100644 libraries/boost/include/boost/hana/detail/variadic/take.hpp create mode 100644 libraries/boost/include/boost/hana/detail/void_t.hpp create mode 100644 libraries/boost/include/boost/hana/detail/wrong.hpp create mode 100644 libraries/boost/include/boost/hana/difference.hpp create mode 100644 libraries/boost/include/boost/hana/div.hpp create mode 100644 libraries/boost/include/boost/hana/drop_back.hpp create mode 100644 libraries/boost/include/boost/hana/drop_front.hpp create mode 100644 libraries/boost/include/boost/hana/drop_front_exactly.hpp create mode 100644 libraries/boost/include/boost/hana/drop_while.hpp create mode 100644 libraries/boost/include/boost/hana/duplicate.hpp create mode 100644 libraries/boost/include/boost/hana/empty.hpp create mode 100644 libraries/boost/include/boost/hana/equal.hpp create mode 100644 libraries/boost/include/boost/hana/erase_key.hpp create mode 100644 libraries/boost/include/boost/hana/eval.hpp create mode 100644 libraries/boost/include/boost/hana/eval_if.hpp create mode 100644 libraries/boost/include/boost/hana/experimental/printable.hpp create mode 100644 libraries/boost/include/boost/hana/experimental/type_name.hpp create mode 100644 libraries/boost/include/boost/hana/experimental/types.hpp create mode 100644 libraries/boost/include/boost/hana/experimental/view.hpp create mode 100644 libraries/boost/include/boost/hana/ext/boost.hpp create mode 100644 libraries/boost/include/boost/hana/ext/boost/fusion.hpp create mode 100644 libraries/boost/include/boost/hana/ext/boost/fusion/deque.hpp create mode 100644 libraries/boost/include/boost/hana/ext/boost/fusion/detail/common.hpp create mode 100644 libraries/boost/include/boost/hana/ext/boost/fusion/list.hpp create mode 100644 libraries/boost/include/boost/hana/ext/boost/fusion/tuple.hpp create mode 100644 libraries/boost/include/boost/hana/ext/boost/fusion/vector.hpp create mode 100644 libraries/boost/include/boost/hana/ext/boost/mpl.hpp create mode 100644 libraries/boost/include/boost/hana/ext/boost/mpl/integral_c.hpp create mode 100644 libraries/boost/include/boost/hana/ext/boost/mpl/list.hpp create mode 100644 libraries/boost/include/boost/hana/ext/boost/mpl/vector.hpp create mode 100644 libraries/boost/include/boost/hana/ext/boost/tuple.hpp create mode 100644 libraries/boost/include/boost/hana/ext/std.hpp create mode 100644 libraries/boost/include/boost/hana/ext/std/array.hpp create mode 100644 libraries/boost/include/boost/hana/ext/std/integer_sequence.hpp create mode 100644 libraries/boost/include/boost/hana/ext/std/integral_constant.hpp create mode 100644 libraries/boost/include/boost/hana/ext/std/pair.hpp create mode 100644 libraries/boost/include/boost/hana/ext/std/ratio.hpp create mode 100644 libraries/boost/include/boost/hana/ext/std/tuple.hpp create mode 100644 libraries/boost/include/boost/hana/ext/std/vector.hpp create mode 100644 libraries/boost/include/boost/hana/extend.hpp create mode 100644 libraries/boost/include/boost/hana/extract.hpp create mode 100644 libraries/boost/include/boost/hana/fill.hpp create mode 100644 libraries/boost/include/boost/hana/filter.hpp create mode 100644 libraries/boost/include/boost/hana/find.hpp create mode 100644 libraries/boost/include/boost/hana/find_if.hpp create mode 100644 libraries/boost/include/boost/hana/first.hpp create mode 100644 libraries/boost/include/boost/hana/flatten.hpp create mode 100644 libraries/boost/include/boost/hana/fold.hpp create mode 100644 libraries/boost/include/boost/hana/fold_left.hpp create mode 100644 libraries/boost/include/boost/hana/fold_right.hpp create mode 100644 libraries/boost/include/boost/hana/for_each.hpp create mode 100644 libraries/boost/include/boost/hana/front.hpp create mode 100644 libraries/boost/include/boost/hana/functional.hpp create mode 100644 libraries/boost/include/boost/hana/functional/always.hpp create mode 100644 libraries/boost/include/boost/hana/functional/apply.hpp create mode 100644 libraries/boost/include/boost/hana/functional/arg.hpp create mode 100644 libraries/boost/include/boost/hana/functional/capture.hpp create mode 100644 libraries/boost/include/boost/hana/functional/compose.hpp create mode 100644 libraries/boost/include/boost/hana/functional/curry.hpp create mode 100644 libraries/boost/include/boost/hana/functional/demux.hpp create mode 100644 libraries/boost/include/boost/hana/functional/fix.hpp create mode 100644 libraries/boost/include/boost/hana/functional/flip.hpp create mode 100644 libraries/boost/include/boost/hana/functional/id.hpp create mode 100644 libraries/boost/include/boost/hana/functional/infix.hpp create mode 100644 libraries/boost/include/boost/hana/functional/iterate.hpp create mode 100644 libraries/boost/include/boost/hana/functional/lockstep.hpp create mode 100644 libraries/boost/include/boost/hana/functional/on.hpp create mode 100644 libraries/boost/include/boost/hana/functional/overload.hpp create mode 100644 libraries/boost/include/boost/hana/functional/overload_linearly.hpp create mode 100644 libraries/boost/include/boost/hana/functional/partial.hpp create mode 100644 libraries/boost/include/boost/hana/functional/placeholder.hpp create mode 100644 libraries/boost/include/boost/hana/functional/reverse_partial.hpp create mode 100644 libraries/boost/include/boost/hana/fuse.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/accessors.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/adapt_adt.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/adapt_struct.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/adjust.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/adjust_if.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/all.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/all_of.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/and.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/any.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/any_of.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/ap.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/append.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/at.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/at_key.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/back.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/basic_tuple.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/bool.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/cartesian_product.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/chain.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/comparing.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/concat.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/concept/applicative.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/concept/comonad.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/concept/comparable.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/concept/constant.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/concept/euclidean_ring.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/concept/foldable.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/concept/functor.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/concept/group.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/concept/hashable.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/concept/integral_constant.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/concept/iterable.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/concept/logical.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/concept/metafunction.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/concept/monad.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/concept/monad_plus.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/concept/monoid.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/concept/orderable.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/concept/product.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/concept/ring.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/concept/searchable.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/concept/sequence.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/concept/struct.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/contains.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/core.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/core/common.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/core/default.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/core/is_a.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/core/make.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/core/tag_of.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/core/to.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/core/when.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/count.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/count_if.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/cycle.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/define_struct.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/difference.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/div.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/drop_back.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/drop_front.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/drop_front_exactly.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/drop_while.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/duplicate.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/empty.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/equal.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/erase_key.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/eval.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/eval_if.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/extend.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/extract.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/fill.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/filter.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/find.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/find_if.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/first.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/flatten.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/fold.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/fold_left.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/fold_right.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/for_each.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/front.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/fuse.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/greater.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/greater_equal.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/group.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/hash.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/if.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/index_if.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/insert.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/insert_range.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/integral_constant.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/intersection.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/intersperse.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/is_disjoint.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/is_empty.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/is_subset.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/keys.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/lazy.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/length.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/less.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/less_equal.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/lexicographical_compare.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/lift.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/map.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/max.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/maximum.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/members.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/min.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/minimum.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/minus.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/mod.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/monadic_compose.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/monadic_fold_left.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/monadic_fold_right.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/mult.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/negate.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/none.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/none_of.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/not.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/not_equal.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/one.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/optional.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/or.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/ordering.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/pair.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/partition.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/permutations.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/plus.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/power.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/prefix.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/prepend.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/product.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/range.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/remove.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/remove_at.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/remove_if.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/remove_range.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/repeat.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/replace.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/replace_if.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/replicate.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/reverse.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/reverse_fold.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/scan_left.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/scan_right.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/second.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/set.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/size.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/slice.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/sort.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/span.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/string.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/suffix.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/sum.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/symmetric_difference.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/take_back.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/take_front.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/take_while.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/tap.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/then.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/transform.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/tuple.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/type.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/unfold_left.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/unfold_right.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/union.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/unique.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/unpack.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/value.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/while.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/zero.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/zip.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/zip_shortest.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/zip_shortest_with.hpp create mode 100644 libraries/boost/include/boost/hana/fwd/zip_with.hpp create mode 100644 libraries/boost/include/boost/hana/greater.hpp create mode 100644 libraries/boost/include/boost/hana/greater_equal.hpp create mode 100644 libraries/boost/include/boost/hana/group.hpp create mode 100644 libraries/boost/include/boost/hana/hash.hpp create mode 100644 libraries/boost/include/boost/hana/if.hpp create mode 100644 libraries/boost/include/boost/hana/index_if.hpp create mode 100644 libraries/boost/include/boost/hana/insert.hpp create mode 100644 libraries/boost/include/boost/hana/insert_range.hpp create mode 100644 libraries/boost/include/boost/hana/integral_constant.hpp create mode 100644 libraries/boost/include/boost/hana/intersection.hpp create mode 100644 libraries/boost/include/boost/hana/intersperse.hpp create mode 100644 libraries/boost/include/boost/hana/is_disjoint.hpp create mode 100644 libraries/boost/include/boost/hana/is_empty.hpp create mode 100644 libraries/boost/include/boost/hana/is_subset.hpp create mode 100644 libraries/boost/include/boost/hana/keys.hpp create mode 100644 libraries/boost/include/boost/hana/lazy.hpp create mode 100644 libraries/boost/include/boost/hana/length.hpp create mode 100644 libraries/boost/include/boost/hana/less.hpp create mode 100644 libraries/boost/include/boost/hana/less_equal.hpp create mode 100644 libraries/boost/include/boost/hana/lexicographical_compare.hpp create mode 100644 libraries/boost/include/boost/hana/lift.hpp create mode 100644 libraries/boost/include/boost/hana/map.hpp create mode 100644 libraries/boost/include/boost/hana/max.hpp create mode 100644 libraries/boost/include/boost/hana/maximum.hpp create mode 100644 libraries/boost/include/boost/hana/members.hpp create mode 100644 libraries/boost/include/boost/hana/min.hpp create mode 100644 libraries/boost/include/boost/hana/minimum.hpp create mode 100644 libraries/boost/include/boost/hana/minus.hpp create mode 100644 libraries/boost/include/boost/hana/mod.hpp create mode 100644 libraries/boost/include/boost/hana/monadic_compose.hpp create mode 100644 libraries/boost/include/boost/hana/monadic_fold_left.hpp create mode 100644 libraries/boost/include/boost/hana/monadic_fold_right.hpp create mode 100644 libraries/boost/include/boost/hana/mult.hpp create mode 100644 libraries/boost/include/boost/hana/negate.hpp create mode 100644 libraries/boost/include/boost/hana/none.hpp create mode 100644 libraries/boost/include/boost/hana/none_of.hpp create mode 100644 libraries/boost/include/boost/hana/not.hpp create mode 100644 libraries/boost/include/boost/hana/not_equal.hpp create mode 100644 libraries/boost/include/boost/hana/one.hpp create mode 100644 libraries/boost/include/boost/hana/optional.hpp create mode 100644 libraries/boost/include/boost/hana/or.hpp create mode 100644 libraries/boost/include/boost/hana/ordering.hpp create mode 100644 libraries/boost/include/boost/hana/pair.hpp create mode 100644 libraries/boost/include/boost/hana/partition.hpp create mode 100644 libraries/boost/include/boost/hana/permutations.hpp create mode 100644 libraries/boost/include/boost/hana/plus.hpp create mode 100644 libraries/boost/include/boost/hana/power.hpp create mode 100644 libraries/boost/include/boost/hana/prefix.hpp create mode 100644 libraries/boost/include/boost/hana/prepend.hpp create mode 100644 libraries/boost/include/boost/hana/product.hpp create mode 100644 libraries/boost/include/boost/hana/range.hpp create mode 100644 libraries/boost/include/boost/hana/remove.hpp create mode 100644 libraries/boost/include/boost/hana/remove_at.hpp create mode 100644 libraries/boost/include/boost/hana/remove_if.hpp create mode 100644 libraries/boost/include/boost/hana/remove_range.hpp create mode 100644 libraries/boost/include/boost/hana/repeat.hpp create mode 100644 libraries/boost/include/boost/hana/replace.hpp create mode 100644 libraries/boost/include/boost/hana/replace_if.hpp create mode 100644 libraries/boost/include/boost/hana/replicate.hpp create mode 100644 libraries/boost/include/boost/hana/reverse.hpp create mode 100644 libraries/boost/include/boost/hana/reverse_fold.hpp create mode 100644 libraries/boost/include/boost/hana/scan_left.hpp create mode 100644 libraries/boost/include/boost/hana/scan_right.hpp create mode 100644 libraries/boost/include/boost/hana/second.hpp create mode 100644 libraries/boost/include/boost/hana/set.hpp create mode 100644 libraries/boost/include/boost/hana/size.hpp create mode 100644 libraries/boost/include/boost/hana/slice.hpp create mode 100644 libraries/boost/include/boost/hana/sort.hpp create mode 100644 libraries/boost/include/boost/hana/span.hpp create mode 100644 libraries/boost/include/boost/hana/string.hpp create mode 100644 libraries/boost/include/boost/hana/suffix.hpp create mode 100644 libraries/boost/include/boost/hana/sum.hpp create mode 100644 libraries/boost/include/boost/hana/symmetric_difference.hpp create mode 100644 libraries/boost/include/boost/hana/take_back.hpp create mode 100644 libraries/boost/include/boost/hana/take_front.hpp create mode 100644 libraries/boost/include/boost/hana/take_while.hpp create mode 100644 libraries/boost/include/boost/hana/tap.hpp create mode 100644 libraries/boost/include/boost/hana/then.hpp create mode 100644 libraries/boost/include/boost/hana/traits.hpp create mode 100644 libraries/boost/include/boost/hana/transform.hpp create mode 100644 libraries/boost/include/boost/hana/tuple.hpp create mode 100644 libraries/boost/include/boost/hana/type.hpp create mode 100644 libraries/boost/include/boost/hana/unfold_left.hpp create mode 100644 libraries/boost/include/boost/hana/unfold_right.hpp create mode 100644 libraries/boost/include/boost/hana/union.hpp create mode 100644 libraries/boost/include/boost/hana/unique.hpp create mode 100644 libraries/boost/include/boost/hana/unpack.hpp create mode 100644 libraries/boost/include/boost/hana/value.hpp create mode 100644 libraries/boost/include/boost/hana/version.hpp create mode 100644 libraries/boost/include/boost/hana/while.hpp create mode 100644 libraries/boost/include/boost/hana/zero.hpp create mode 100644 libraries/boost/include/boost/hana/zip.hpp create mode 100644 libraries/boost/include/boost/hana/zip_shortest.hpp create mode 100644 libraries/boost/include/boost/hana/zip_shortest_with.hpp create mode 100644 libraries/boost/include/boost/hana/zip_with.hpp create mode 100644 libraries/boost/include/boost/intrusive/any_hook.hpp create mode 100644 libraries/boost/include/boost/intrusive/avl_set.hpp create mode 100644 libraries/boost/include/boost/intrusive/avl_set_hook.hpp create mode 100644 libraries/boost/include/boost/intrusive/avltree.hpp create mode 100644 libraries/boost/include/boost/intrusive/avltree_algorithms.hpp create mode 100644 libraries/boost/include/boost/intrusive/bs_set.hpp create mode 100644 libraries/boost/include/boost/intrusive/bs_set_hook.hpp create mode 100644 libraries/boost/include/boost/intrusive/bstree.hpp create mode 100644 libraries/boost/include/boost/intrusive/bstree_algorithms.hpp create mode 100644 libraries/boost/include/boost/intrusive/circular_list_algorithms.hpp create mode 100644 libraries/boost/include/boost/intrusive/circular_slist_algorithms.hpp create mode 100644 libraries/boost/include/boost/intrusive/derivation_value_traits.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/algo_type.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/algorithm.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/algorithm.hpp52078 create mode 100644 libraries/boost/include/boost/intrusive/detail/any_node_and_algorithms.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/array_initializer.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/assert.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/avltree_node.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/bstree_algorithms_base.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/common_slist_algorithms.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/config_begin.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/config_end.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/default_header_holder.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/ebo_functor_holder.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/empty_node_checker.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/equal_to_value.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/exception_disposer.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/function_detector.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/generic_hook.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/get_value_traits.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/has_member_function_callable_with.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/has_member_function_callable_with.hpp15999 create mode 100644 libraries/boost/include/boost/intrusive/detail/hashtable_node.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/hook_traits.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/iiterator.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/is_stateful_value_traits.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/iterator.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/iterator.hpp51772 create mode 100644 libraries/boost/include/boost/intrusive/detail/key_nodeptr_comp.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/list_iterator.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/list_node.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/math.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/minimal_less_equal_header.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/minimal_pair_header.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/mpl.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/mpl.hpp15895 create mode 100644 libraries/boost/include/boost/intrusive/detail/node_cloner_disposer.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/node_holder.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/node_to_value.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/parent_from_member.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/rbtree_node.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/reverse_iterator.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/reverse_iterator.hpp51830 create mode 100644 libraries/boost/include/boost/intrusive/detail/simple_disposers.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/size_holder.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/slist_iterator.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/slist_node.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/std_fwd.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/transform_iterator.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/tree_iterator.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/tree_node.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/tree_value_compare.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/uncast.hpp create mode 100644 libraries/boost/include/boost/intrusive/detail/workaround.hpp create mode 100644 libraries/boost/include/boost/intrusive/hashtable.hpp create mode 100644 libraries/boost/include/boost/intrusive/intrusive_fwd.hpp create mode 100644 libraries/boost/include/boost/intrusive/linear_slist_algorithms.hpp create mode 100644 libraries/boost/include/boost/intrusive/link_mode.hpp create mode 100644 libraries/boost/include/boost/intrusive/list.hpp create mode 100644 libraries/boost/include/boost/intrusive/list_hook.hpp create mode 100644 libraries/boost/include/boost/intrusive/member_value_traits.hpp create mode 100644 libraries/boost/include/boost/intrusive/options.hpp create mode 100644 libraries/boost/include/boost/intrusive/pack_options.hpp create mode 100644 libraries/boost/include/boost/intrusive/pack_options.hpp51740 create mode 100644 libraries/boost/include/boost/intrusive/parent_from_member.hpp create mode 100644 libraries/boost/include/boost/intrusive/pointer_plus_bits.hpp create mode 100644 libraries/boost/include/boost/intrusive/pointer_rebind.hpp create mode 100644 libraries/boost/include/boost/intrusive/pointer_rebind.hpp15904 create mode 100644 libraries/boost/include/boost/intrusive/pointer_traits.hpp create mode 100644 libraries/boost/include/boost/intrusive/pointer_traits.hpp15901 create mode 100644 libraries/boost/include/boost/intrusive/priority_compare.hpp create mode 100644 libraries/boost/include/boost/intrusive/rbtree.hpp create mode 100644 libraries/boost/include/boost/intrusive/rbtree_algorithms.hpp create mode 100644 libraries/boost/include/boost/intrusive/set.hpp create mode 100644 libraries/boost/include/boost/intrusive/set_hook.hpp create mode 100644 libraries/boost/include/boost/intrusive/sg_set.hpp create mode 100644 libraries/boost/include/boost/intrusive/sgtree.hpp create mode 100644 libraries/boost/include/boost/intrusive/sgtree_algorithms.hpp create mode 100644 libraries/boost/include/boost/intrusive/slist.hpp create mode 100644 libraries/boost/include/boost/intrusive/slist_hook.hpp create mode 100644 libraries/boost/include/boost/intrusive/splay_set.hpp create mode 100644 libraries/boost/include/boost/intrusive/splaytree.hpp create mode 100644 libraries/boost/include/boost/intrusive/splaytree_algorithms.hpp create mode 100644 libraries/boost/include/boost/intrusive/treap.hpp create mode 100644 libraries/boost/include/boost/intrusive/treap_algorithms.hpp create mode 100644 libraries/boost/include/boost/intrusive/treap_set.hpp create mode 100644 libraries/boost/include/boost/intrusive/trivial_value_traits.hpp create mode 100644 libraries/boost/include/boost/intrusive/unordered_set.hpp create mode 100644 libraries/boost/include/boost/intrusive/unordered_set_hook.hpp create mode 100644 libraries/boost/include/boost/move/adl_move_swap.hpp create mode 100644 libraries/boost/include/boost/move/adl_move_swap.hpp16395 create mode 100644 libraries/boost/include/boost/move/algo/adaptive_merge.hpp create mode 100644 libraries/boost/include/boost/move/algo/adaptive_merge.hpp52105 create mode 100644 libraries/boost/include/boost/move/algo/adaptive_sort.hpp create mode 100644 libraries/boost/include/boost/move/algo/adaptive_sort.hpp53427 create mode 100644 libraries/boost/include/boost/move/algo/detail/adaptive_sort_merge.hpp create mode 100644 libraries/boost/include/boost/move/algo/detail/adaptive_sort_merge.hpp52107 create mode 100644 libraries/boost/include/boost/move/algo/detail/basic_op.hpp create mode 100644 libraries/boost/include/boost/move/algo/detail/basic_op.hpp52120 create mode 100644 libraries/boost/include/boost/move/algo/detail/heap_sort.hpp create mode 100644 libraries/boost/include/boost/move/algo/detail/heap_sort.hpp52189 create mode 100644 libraries/boost/include/boost/move/algo/detail/insertion_sort.hpp create mode 100644 libraries/boost/include/boost/move/algo/detail/insertion_sort.hpp52181 create mode 100644 libraries/boost/include/boost/move/algo/detail/is_sorted.hpp create mode 100644 libraries/boost/include/boost/move/algo/detail/is_sorted.hpp52191 create mode 100644 libraries/boost/include/boost/move/algo/detail/merge.hpp create mode 100644 libraries/boost/include/boost/move/algo/detail/merge.hpp52119 create mode 100644 libraries/boost/include/boost/move/algo/detail/merge_sort.hpp create mode 100644 libraries/boost/include/boost/move/algo/detail/merge_sort.hpp52183 create mode 100644 libraries/boost/include/boost/move/algo/detail/pdqsort.hpp create mode 100644 libraries/boost/include/boost/move/algo/detail/pdqsort.hpp53532 create mode 100644 libraries/boost/include/boost/move/algo/detail/set_difference.hpp create mode 100644 libraries/boost/include/boost/move/algo/detail/set_difference.hpp52368 create mode 100644 libraries/boost/include/boost/move/algo/move.hpp create mode 100644 libraries/boost/include/boost/move/algo/move.hpp52112 create mode 100644 libraries/boost/include/boost/move/algo/predicate.hpp create mode 100644 libraries/boost/include/boost/move/algo/predicate.hpp52132 create mode 100644 libraries/boost/include/boost/move/algo/unique.hpp create mode 100644 libraries/boost/include/boost/move/algo/unique.hpp52365 create mode 100644 libraries/boost/include/boost/move/algorithm.hpp create mode 100644 libraries/boost/include/boost/move/core.hpp create mode 100644 libraries/boost/include/boost/move/core.hpp15979 create mode 100644 libraries/boost/include/boost/move/default_delete.hpp create mode 100644 libraries/boost/include/boost/move/default_delete.hpp53042 create mode 100644 libraries/boost/include/boost/move/detail/config_begin.hpp create mode 100644 libraries/boost/include/boost/move/detail/config_end.hpp create mode 100644 libraries/boost/include/boost/move/detail/destruct_n.hpp create mode 100644 libraries/boost/include/boost/move/detail/destruct_n.hpp52131 create mode 100644 libraries/boost/include/boost/move/detail/fwd_macros.hpp create mode 100644 libraries/boost/include/boost/move/detail/fwd_macros.hpp16000 create mode 100644 libraries/boost/include/boost/move/detail/iterator_to_raw_pointer.hpp create mode 100644 libraries/boost/include/boost/move/detail/iterator_to_raw_pointer.hpp51818 create mode 100644 libraries/boost/include/boost/move/detail/iterator_traits.hpp create mode 100644 libraries/boost/include/boost/move/detail/iterator_traits.hpp51789 create mode 100644 libraries/boost/include/boost/move/detail/meta_utils.hpp create mode 100644 libraries/boost/include/boost/move/detail/meta_utils.hpp15725 create mode 100644 libraries/boost/include/boost/move/detail/meta_utils_core.hpp create mode 100644 libraries/boost/include/boost/move/detail/meta_utils_core.hpp15727 create mode 100644 libraries/boost/include/boost/move/detail/move_helpers.hpp create mode 100644 libraries/boost/include/boost/move/detail/placement_new.hpp create mode 100644 libraries/boost/include/boost/move/detail/placement_new.hpp52182 create mode 100644 libraries/boost/include/boost/move/detail/pointer_element.hpp create mode 100644 libraries/boost/include/boost/move/detail/pointer_element.hpp15905 create mode 100644 libraries/boost/include/boost/move/detail/reverse_iterator.hpp create mode 100644 libraries/boost/include/boost/move/detail/reverse_iterator.hpp52109 create mode 100644 libraries/boost/include/boost/move/detail/std_ns_begin.hpp create mode 100644 libraries/boost/include/boost/move/detail/std_ns_end.hpp create mode 100644 libraries/boost/include/boost/move/detail/to_raw_pointer.hpp create mode 100644 libraries/boost/include/boost/move/detail/to_raw_pointer.hpp51819 create mode 100644 libraries/boost/include/boost/move/detail/type_traits.hpp create mode 100644 libraries/boost/include/boost/move/detail/type_traits.hpp15715 create mode 100644 libraries/boost/include/boost/move/detail/unique_ptr_meta_utils.hpp create mode 100644 libraries/boost/include/boost/move/detail/unique_ptr_meta_utils.hpp53038 create mode 100644 libraries/boost/include/boost/move/detail/workaround.hpp create mode 100644 libraries/boost/include/boost/move/iterator.hpp create mode 100644 libraries/boost/include/boost/move/iterator.hpp51896 create mode 100644 libraries/boost/include/boost/move/make_unique.hpp create mode 100644 libraries/boost/include/boost/move/make_unique.hpp53034 create mode 100644 libraries/boost/include/boost/move/move.hpp create mode 100644 libraries/boost/include/boost/move/traits.hpp create mode 100644 libraries/boost/include/boost/move/traits.hpp52101 create mode 100644 libraries/boost/include/boost/move/unique_ptr.hpp create mode 100644 libraries/boost/include/boost/move/unique_ptr.hpp53036 create mode 100644 libraries/boost/include/boost/move/utility.hpp create mode 100644 libraries/boost/include/boost/move/utility_core.hpp create mode 100644 libraries/boost/include/boost/move/utility_core.hpp15977 create mode 100644 libraries/boost/include/boost/mp11.hpp create mode 100644 libraries/boost/include/boost/mp11/algorithm.hpp create mode 100644 libraries/boost/include/boost/mp11/bind.hpp create mode 100644 libraries/boost/include/boost/mp11/detail/config.hpp create mode 100644 libraries/boost/include/boost/mp11/detail/mp_append.hpp create mode 100644 libraries/boost/include/boost/mp11/detail/mp_count.hpp create mode 100644 libraries/boost/include/boost/mp11/detail/mp_fold.hpp create mode 100644 libraries/boost/include/boost/mp11/detail/mp_list.hpp create mode 100644 libraries/boost/include/boost/mp11/detail/mp_map_find.hpp create mode 100644 libraries/boost/include/boost/mp11/detail/mp_min_element.hpp create mode 100644 libraries/boost/include/boost/mp11/detail/mp_plus.hpp create mode 100644 libraries/boost/include/boost/mp11/detail/mp_void.hpp create mode 100644 libraries/boost/include/boost/mp11/detail/mp_with_index.hpp create mode 100644 libraries/boost/include/boost/mp11/function.hpp create mode 100644 libraries/boost/include/boost/mp11/integer_sequence.hpp create mode 100644 libraries/boost/include/boost/mp11/integral.hpp create mode 100644 libraries/boost/include/boost/mp11/list.hpp create mode 100644 libraries/boost/include/boost/mp11/map.hpp create mode 100644 libraries/boost/include/boost/mp11/mpl.hpp create mode 100644 libraries/boost/include/boost/mp11/set.hpp create mode 100644 libraries/boost/include/boost/mp11/tuple.hpp create mode 100644 libraries/boost/include/boost/mp11/utility.hpp create mode 100644 libraries/boost/include/boost/mpi.hpp create mode 100644 libraries/boost/include/boost/mpl/O1_size.hpp create mode 100644 libraries/boost/include/boost/mpl/O1_size.hpp314091 create mode 100644 libraries/boost/include/boost/mpl/O1_size_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/O1_size_fwd.hpp314092 create mode 100644 libraries/boost/include/boost/mpl/accumulate.hpp create mode 100644 libraries/boost/include/boost/mpl/advance.hpp create mode 100644 libraries/boost/include/boost/mpl/advance.hpp350582 create mode 100644 libraries/boost/include/boost/mpl/advance_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/advance_fwd.hpp350583 create mode 100644 libraries/boost/include/boost/mpl/alias.hpp create mode 100644 libraries/boost/include/boost/mpl/always.hpp create mode 100644 libraries/boost/include/boost/mpl/and.hpp create mode 100644 libraries/boost/include/boost/mpl/apply.hpp create mode 100644 libraries/boost/include/boost/mpl/apply_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/apply_wrap.hpp create mode 100644 libraries/boost/include/boost/mpl/arg.hpp create mode 100644 libraries/boost/include/boost/mpl/arg_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/arithmetic.hpp create mode 100644 libraries/boost/include/boost/mpl/as_sequence.hpp create mode 100644 libraries/boost/include/boost/mpl/assert.hpp create mode 100644 libraries/boost/include/boost/mpl/at.hpp create mode 100644 libraries/boost/include/boost/mpl/at_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/O1_size_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/O1_size_impl.hpp314093 create mode 100644 libraries/boost/include/boost/mpl/aux_/adl_barrier.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/adl_barrier.hpp56635 create mode 100644 libraries/boost/include/boost/mpl/aux_/advance_backward.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/advance_forward.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/apply_1st.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/arg_typedef.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/arithmetic_op.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/arity.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/arity_spec.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/at_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/back_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/basic_bind.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/begin_end_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/begin_end_impl.hpp74543 create mode 100644 libraries/boost/include/boost/mpl/aux_/clear_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/common_name_wknd.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/comparison_op.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/config/adl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/config/arrays.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/config/bcc.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/config/bind.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/config/compiler.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/config/ctps.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/config/dependent_nttp.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/config/dtp.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/config/eti.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/config/forwarding.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/config/gcc.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/config/gpu.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/config/has_apply.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/config/has_xxx.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/config/integral.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/config/intel.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/config/lambda.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/config/msvc.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/config/msvc_typename.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/config/nttp.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/config/operators.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/config/overload_resolution.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/config/pp_counter.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/config/preprocessor.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/config/static_constant.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/config/ttp.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/config/typeof.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/config/use_preprocessed.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/config/workaround.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/contains_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/count_args.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/count_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/empty_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/erase_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/erase_key_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/filter_iter.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/find_if_pred.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/fold_impl_body.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/fold_op.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/fold_pred.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/front_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/full_lambda.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/has_apply.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/has_apply.hpp308179 create mode 100644 libraries/boost/include/boost/mpl/aux_/has_begin.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/has_begin.hpp90667 create mode 100644 libraries/boost/include/boost/mpl/aux_/has_key_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/has_rebind.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/has_size.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/has_size.hpp314262 create mode 100644 libraries/boost/include/boost/mpl/aux_/has_tag.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/has_tag.hpp90901 create mode 100644 libraries/boost/include/boost/mpl/aux_/has_type.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/has_type.hpp328164 create mode 100644 libraries/boost/include/boost/mpl/aux_/include_preprocessed.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/insert_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/insert_range_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/inserter_algorithm.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/integral_wrapper.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/is_msvc_eti_arg.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/is_msvc_eti_arg.hpp90910 create mode 100644 libraries/boost/include/boost/mpl/aux_/iter_apply.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/iter_fold_if_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/iter_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/iter_push_front.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/joint_iter.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/lambda_arity_param.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/lambda_no_ctps.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/lambda_spec.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/lambda_support.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/largest_int.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/largest_int.hpp344657 create mode 100644 libraries/boost/include/boost/mpl/aux_/logical_op.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/msvc_dtw.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/msvc_eti_base.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/msvc_eti_base.hpp308273 create mode 100644 libraries/boost/include/boost/mpl/aux_/msvc_is_class.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/msvc_never_true.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/msvc_type.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/msvc_type.hpp333876 create mode 100644 libraries/boost/include/boost/mpl/aux_/na.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/na.hpp57367 create mode 100644 libraries/boost/include/boost/mpl/aux_/na_assert.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/na_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/na_spec.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/nested_type_wknd.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/nested_type_wknd.hpp63251 create mode 100644 libraries/boost/include/boost/mpl/aux_/nttp_decl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/numeric_cast_utils.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/numeric_cast_utils.hpp308254 create mode 100644 libraries/boost/include/boost/mpl/aux_/numeric_op.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/order_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/overload_names.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/partition_op.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/pop_back_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/pop_front_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/advance_backward.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/advance_forward.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/and.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/apply.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/apply_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/apply_wrap.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/arg.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/basic_bind.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/bind.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/bind_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/bitand.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/bitor.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/bitxor.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/deque.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/divides.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/equal_to.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/full_lambda.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/greater.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/greater_equal.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/inherit.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/iter_fold_if_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/iter_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/less.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/less_equal.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/list.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/list_c.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/map.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/minus.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/modulus.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/not_equal_to.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/or.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/placeholders.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/plus.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/quote.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/reverse_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/reverse_iter_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/set.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/set_c.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/shift_left.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/shift_right.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/template_arity.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/times.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/unpack_args.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/vector.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc/vector_c.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/advance_backward.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/advance_forward.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/and.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/apply.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/apply_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/apply_wrap.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/arg.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/basic_bind.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/bind.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/bind_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/bitand.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/bitor.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/bitxor.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/deque.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/divides.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/equal_to.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/full_lambda.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/greater.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/greater_equal.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/inherit.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/iter_fold_if_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/iter_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/lambda_no_ctps.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/less.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/less_equal.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/list.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/list_c.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/map.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/minus.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/modulus.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/not_equal_to.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/or.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/placeholders.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/plus.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/quote.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/reverse_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/reverse_iter_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/set.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/set_c.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/shift_left.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/shift_right.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/template_arity.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/times.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/unpack_args.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/vector.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc551/vector_c.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/advance_backward.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/advance_forward.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/and.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/apply.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/apply_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/apply_wrap.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/arg.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/basic_bind.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/bind.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/bind_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/bitand.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/bitor.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/bitxor.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/deque.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/divides.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/equal_to.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/full_lambda.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/greater.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/greater_equal.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/inherit.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_if_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/lambda_no_ctps.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/less.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/less_equal.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/list.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/list_c.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/map.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/minus.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/modulus.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/not_equal_to.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/or.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/placeholders.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/plus.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/quote.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_iter_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/set.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/set_c.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/shift_left.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/shift_right.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/template_arity.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/times.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/unpack_args.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/vector.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/bcc_pre590/vector_c.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/advance_backward.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/advance_forward.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/and.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/apply.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/apply_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/apply_wrap.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/arg.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/basic_bind.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/bind.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/bind_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/bitand.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/bitor.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/bitxor.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/deque.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/divides.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/equal_to.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/full_lambda.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/greater.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/greater_equal.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/inherit.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/iter_fold_if_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/iter_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/less.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/less_equal.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/list.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/list_c.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/map.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/minus.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/modulus.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/not_equal_to.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/or.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/placeholders.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/plus.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/quote.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/reverse_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/reverse_iter_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/set.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/set_c.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/shift_left.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/shift_right.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/template_arity.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/times.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/unpack_args.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/vector.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/dmc/vector_c.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp361548 create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp361518 create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/and.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/and.hpp68792 create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/apply.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/apply.hpp333874 create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp319709 create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp308252 create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/arg.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/basic_bind.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/bind.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/bind.hpp325026 create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp320025 create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/bitand.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/bitor.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/bitxor.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/deque.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/divides.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp308329 create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp339282 create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp328289 create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/greater.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/inherit.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/inherit.hpp383331 create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp367060 create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/less.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/less.hpp350618 create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/list.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/list_c.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/map.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/minus.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/minus.hpp404273 create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/modulus.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/or.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/or.hpp123422 create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp319930 create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/plus.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/plus.hpp344690 create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/quote.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/quote.hpp328222 create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/reverse_iter_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/set.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/set_c.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/shift_left.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/shift_right.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp328252 create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/times.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/unpack_args.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/vector.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/gcc/vector_c.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/advance_backward.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/advance_forward.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/and.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/apply.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/apply_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/apply_wrap.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/arg.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/bind.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/bind_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/bitand.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/bitor.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/bitxor.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/deque.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/divides.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/equal_to.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/greater.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/greater_equal.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/inherit.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/iter_fold_if_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/less.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/less_equal.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/list.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/list_c.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/map.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/minus.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/modulus.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/not_equal_to.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/or.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/placeholders.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/plus.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/quote.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/reverse_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/reverse_iter_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/set.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/set_c.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/shift_left.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/shift_right.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/template_arity.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/times.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/unpack_args.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/vector.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc60/vector_c.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/advance_backward.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/advance_forward.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/and.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/apply.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/apply_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/apply_wrap.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/arg.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/bind.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/bind_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/bitand.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/bitor.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/bitxor.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/deque.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/divides.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/equal_to.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/greater.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/greater_equal.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/inherit.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/iter_fold_if_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/iter_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/less.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/less_equal.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/list.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/list_c.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/map.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/minus.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/modulus.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/not_equal_to.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/or.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/placeholders.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/plus.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/quote.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/reverse_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/reverse_iter_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/set.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/set_c.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/shift_left.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/shift_right.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/template_arity.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/times.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/unpack_args.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/vector.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/msvc70/vector_c.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/advance_backward.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/advance_forward.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/and.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/apply.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/apply_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/apply_wrap.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/arg.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/basic_bind.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/bind.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/bind_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/bitand.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/bitor.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/bitxor.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/deque.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/divides.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/equal_to.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/full_lambda.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/greater.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/greater_equal.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/inherit.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/iter_fold_if_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/iter_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/lambda_no_ctps.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/less.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/less_equal.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/list.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/list_c.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/map.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/minus.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/modulus.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/not_equal_to.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/or.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/placeholders.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/plus.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/quote.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/reverse_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/reverse_iter_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/set.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/set_c.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/shift_left.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/shift_right.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/template_arity.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/times.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/unpack_args.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/vector.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/mwcw/vector_c.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/advance_backward.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/advance_forward.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/and.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/apply.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/apply_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/apply_wrap.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/arg.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/basic_bind.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/bind.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/bind_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/bitand.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/bitor.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/bitxor.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/deque.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/divides.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/equal_to.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/full_lambda.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/greater.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/greater_equal.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/inherit.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_if_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/lambda_no_ctps.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/less.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/less_equal.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/list.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/list_c.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/map.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/minus.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/modulus.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/not_equal_to.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/or.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/placeholders.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/plus.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/quote.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/reverse_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/reverse_iter_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/set.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/set_c.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/shift_left.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/shift_right.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/template_arity.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/times.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/unpack_args.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/vector.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ctps/vector_c.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/advance_backward.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/advance_forward.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/and.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/apply.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/apply_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/apply_wrap.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/arg.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/basic_bind.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/bind.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/bind_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/bitand.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/bitor.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/bitxor.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/deque.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/divides.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/equal_to.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/full_lambda.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/greater.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/greater_equal.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/inherit.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_if_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/lambda_no_ctps.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/less.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/less_equal.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/list.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/list_c.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/map.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/minus.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/modulus.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/not_equal_to.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/or.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/placeholders.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/plus.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/quote.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/reverse_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/reverse_iter_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/set.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/set_c.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/shift_left.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/shift_right.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/template_arity.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/times.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/unpack_args.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/vector.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/no_ttp/vector_c.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/advance_backward.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/advance_forward.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/and.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/apply.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/apply_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/apply_wrap.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/arg.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/basic_bind.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/bind.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/bind_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/bitand.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/bitor.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/bitxor.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/deque.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/divides.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/equal_to.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/full_lambda.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/greater.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/greater_equal.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/inherit.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/iter_fold_if_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/iter_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/lambda_no_ctps.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/less.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/less_equal.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/list.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/list_c.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/map.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/minus.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/modulus.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/not_equal_to.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/or.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/placeholders.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/plus.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/quote.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/reverse_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/reverse_iter_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/set.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/set_c.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/shift_left.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/shift_right.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/template_arity.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/times.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/unpack_args.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/vector.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessed/plain/vector_c.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessor/add.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessor/default_params.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessor/enum.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessor/ext_params.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessor/filter_params.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessor/is_seq.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessor/params.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessor/range.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessor/repeat.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessor/sub.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessor/token_equal.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/preprocessor/tuple.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/ptr_to_ref.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/push_back_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/push_front_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/range_c/O1_size.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/range_c/back.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/range_c/empty.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/range_c/front.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/range_c/iterator.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/range_c/size.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/range_c/tag.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/reverse_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/reverse_fold_impl_body.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/reverse_iter_fold_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/sequence_wrapper.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/shift_op.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/single_element_iter.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/size_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/sort_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/static_cast.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/template_arity.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/template_arity_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/template_arity_fwd.hpp57588 create mode 100644 libraries/boost/include/boost/mpl/aux_/test.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/test/assert.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/test/data.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/test/test_case.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/traits_lambda_spec.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/transform_iter.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/type_wrapper.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/type_wrapper.hpp90669 create mode 100644 libraries/boost/include/boost/mpl/aux_/unwrap.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/value_wknd.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/value_wknd.hpp57276 create mode 100644 libraries/boost/include/boost/mpl/aux_/yes_no.hpp create mode 100644 libraries/boost/include/boost/mpl/aux_/yes_no.hpp90670 create mode 100644 libraries/boost/include/boost/mpl/back.hpp create mode 100644 libraries/boost/include/boost/mpl/back_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/back_inserter.hpp create mode 100644 libraries/boost/include/boost/mpl/base.hpp create mode 100644 libraries/boost/include/boost/mpl/begin.hpp create mode 100644 libraries/boost/include/boost/mpl/begin_end.hpp create mode 100644 libraries/boost/include/boost/mpl/begin_end.hpp74542 create mode 100644 libraries/boost/include/boost/mpl/begin_end_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/begin_end_fwd.hpp63214 create mode 100644 libraries/boost/include/boost/mpl/bind.hpp create mode 100644 libraries/boost/include/boost/mpl/bind_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/bitand.hpp create mode 100644 libraries/boost/include/boost/mpl/bitor.hpp create mode 100644 libraries/boost/include/boost/mpl/bitwise.hpp create mode 100644 libraries/boost/include/boost/mpl/bitxor.hpp create mode 100644 libraries/boost/include/boost/mpl/bool.hpp create mode 100644 libraries/boost/include/boost/mpl/bool_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/char.hpp create mode 100644 libraries/boost/include/boost/mpl/char_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/clear.hpp create mode 100644 libraries/boost/include/boost/mpl/clear_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/comparison.hpp create mode 100644 libraries/boost/include/boost/mpl/contains.hpp create mode 100644 libraries/boost/include/boost/mpl/contains_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/copy.hpp create mode 100644 libraries/boost/include/boost/mpl/copy_if.hpp create mode 100644 libraries/boost/include/boost/mpl/count.hpp create mode 100644 libraries/boost/include/boost/mpl/count_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/count_if.hpp create mode 100644 libraries/boost/include/boost/mpl/deque.hpp create mode 100644 libraries/boost/include/boost/mpl/deref.hpp create mode 100644 libraries/boost/include/boost/mpl/deref.hpp333875 create mode 100644 libraries/boost/include/boost/mpl/distance.hpp create mode 100644 libraries/boost/include/boost/mpl/distance.hpp367028 create mode 100644 libraries/boost/include/boost/mpl/distance_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/distance_fwd.hpp367029 create mode 100644 libraries/boost/include/boost/mpl/divides.hpp create mode 100644 libraries/boost/include/boost/mpl/empty.hpp create mode 100644 libraries/boost/include/boost/mpl/empty_base.hpp create mode 100644 libraries/boost/include/boost/mpl/empty_base.hpp56632 create mode 100644 libraries/boost/include/boost/mpl/empty_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/empty_sequence.hpp create mode 100644 libraries/boost/include/boost/mpl/end.hpp create mode 100644 libraries/boost/include/boost/mpl/equal.hpp create mode 100644 libraries/boost/include/boost/mpl/equal_to.hpp create mode 100644 libraries/boost/include/boost/mpl/erase.hpp create mode 100644 libraries/boost/include/boost/mpl/erase_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/erase_key.hpp create mode 100644 libraries/boost/include/boost/mpl/erase_key_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/eval_if.hpp create mode 100644 libraries/boost/include/boost/mpl/eval_if.hpp85327 create mode 100644 libraries/boost/include/boost/mpl/filter_view.hpp create mode 100644 libraries/boost/include/boost/mpl/find.hpp create mode 100644 libraries/boost/include/boost/mpl/find_if.hpp create mode 100644 libraries/boost/include/boost/mpl/fold.hpp create mode 100644 libraries/boost/include/boost/mpl/fold.hpp314090 create mode 100644 libraries/boost/include/boost/mpl/for_each.hpp create mode 100644 libraries/boost/include/boost/mpl/front.hpp create mode 100644 libraries/boost/include/boost/mpl/front_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/front_inserter.hpp create mode 100644 libraries/boost/include/boost/mpl/get_tag.hpp create mode 100644 libraries/boost/include/boost/mpl/greater.hpp create mode 100644 libraries/boost/include/boost/mpl/greater_equal.hpp create mode 100644 libraries/boost/include/boost/mpl/has_key.hpp create mode 100644 libraries/boost/include/boost/mpl/has_key_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/has_xxx.hpp create mode 100644 libraries/boost/include/boost/mpl/identity.hpp create mode 100644 libraries/boost/include/boost/mpl/identity.hpp107074 create mode 100644 libraries/boost/include/boost/mpl/if.hpp create mode 100644 libraries/boost/include/boost/mpl/if.hpp57275 create mode 100644 libraries/boost/include/boost/mpl/index_if.hpp create mode 100644 libraries/boost/include/boost/mpl/index_of.hpp create mode 100644 libraries/boost/include/boost/mpl/inherit.hpp create mode 100644 libraries/boost/include/boost/mpl/inherit_linearly.hpp create mode 100644 libraries/boost/include/boost/mpl/insert.hpp create mode 100644 libraries/boost/include/boost/mpl/insert_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/insert_range.hpp create mode 100644 libraries/boost/include/boost/mpl/insert_range_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/inserter.hpp create mode 100644 libraries/boost/include/boost/mpl/int.hpp create mode 100644 libraries/boost/include/boost/mpl/int_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/integral_c.hpp create mode 100644 libraries/boost/include/boost/mpl/integral_c_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/integral_c_tag.hpp create mode 100644 libraries/boost/include/boost/mpl/is_placeholder.hpp create mode 100644 libraries/boost/include/boost/mpl/is_sequence.hpp create mode 100644 libraries/boost/include/boost/mpl/is_sequence.hpp63249 create mode 100644 libraries/boost/include/boost/mpl/iter_fold.hpp create mode 100644 libraries/boost/include/boost/mpl/iter_fold.hpp367030 create mode 100644 libraries/boost/include/boost/mpl/iter_fold_if.hpp create mode 100644 libraries/boost/include/boost/mpl/iterator_category.hpp create mode 100644 libraries/boost/include/boost/mpl/iterator_range.hpp create mode 100644 libraries/boost/include/boost/mpl/iterator_range.hpp372300 create mode 100644 libraries/boost/include/boost/mpl/iterator_tags.hpp create mode 100644 libraries/boost/include/boost/mpl/iterator_tags.hpp383261 create mode 100644 libraries/boost/include/boost/mpl/joint_view.hpp create mode 100644 libraries/boost/include/boost/mpl/key_type.hpp create mode 100644 libraries/boost/include/boost/mpl/key_type_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/lambda.hpp create mode 100644 libraries/boost/include/boost/mpl/lambda_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/lambda_fwd.hpp57360 create mode 100644 libraries/boost/include/boost/mpl/less.hpp create mode 100644 libraries/boost/include/boost/mpl/less_equal.hpp create mode 100644 libraries/boost/include/boost/mpl/limits/arity.hpp create mode 100644 libraries/boost/include/boost/mpl/limits/list.hpp create mode 100644 libraries/boost/include/boost/mpl/limits/map.hpp create mode 100644 libraries/boost/include/boost/mpl/limits/set.hpp create mode 100644 libraries/boost/include/boost/mpl/limits/string.hpp create mode 100644 libraries/boost/include/boost/mpl/limits/unrolling.hpp create mode 100644 libraries/boost/include/boost/mpl/limits/vector.hpp create mode 100644 libraries/boost/include/boost/mpl/list.hpp create mode 100644 libraries/boost/include/boost/mpl/list/aux_/O1_size.hpp create mode 100644 libraries/boost/include/boost/mpl/list/aux_/begin_end.hpp create mode 100644 libraries/boost/include/boost/mpl/list/aux_/clear.hpp create mode 100644 libraries/boost/include/boost/mpl/list/aux_/empty.hpp create mode 100644 libraries/boost/include/boost/mpl/list/aux_/front.hpp create mode 100644 libraries/boost/include/boost/mpl/list/aux_/include_preprocessed.hpp create mode 100644 libraries/boost/include/boost/mpl/list/aux_/item.hpp create mode 100644 libraries/boost/include/boost/mpl/list/aux_/iterator.hpp create mode 100644 libraries/boost/include/boost/mpl/list/aux_/numbered.hpp create mode 100644 libraries/boost/include/boost/mpl/list/aux_/numbered_c.hpp create mode 100644 libraries/boost/include/boost/mpl/list/aux_/pop_front.hpp create mode 100644 libraries/boost/include/boost/mpl/list/aux_/preprocessed/plain/list10.hpp create mode 100644 libraries/boost/include/boost/mpl/list/aux_/preprocessed/plain/list10_c.hpp create mode 100644 libraries/boost/include/boost/mpl/list/aux_/preprocessed/plain/list20.hpp create mode 100644 libraries/boost/include/boost/mpl/list/aux_/preprocessed/plain/list20_c.hpp create mode 100644 libraries/boost/include/boost/mpl/list/aux_/preprocessed/plain/list30.hpp create mode 100644 libraries/boost/include/boost/mpl/list/aux_/preprocessed/plain/list30_c.hpp create mode 100644 libraries/boost/include/boost/mpl/list/aux_/preprocessed/plain/list40.hpp create mode 100644 libraries/boost/include/boost/mpl/list/aux_/preprocessed/plain/list40_c.hpp create mode 100644 libraries/boost/include/boost/mpl/list/aux_/preprocessed/plain/list50.hpp create mode 100644 libraries/boost/include/boost/mpl/list/aux_/preprocessed/plain/list50_c.hpp create mode 100644 libraries/boost/include/boost/mpl/list/aux_/push_back.hpp create mode 100644 libraries/boost/include/boost/mpl/list/aux_/push_front.hpp create mode 100644 libraries/boost/include/boost/mpl/list/aux_/size.hpp create mode 100644 libraries/boost/include/boost/mpl/list/aux_/tag.hpp create mode 100644 libraries/boost/include/boost/mpl/list/list0.hpp create mode 100644 libraries/boost/include/boost/mpl/list/list0_c.hpp create mode 100644 libraries/boost/include/boost/mpl/list/list10.hpp create mode 100644 libraries/boost/include/boost/mpl/list/list10_c.hpp create mode 100644 libraries/boost/include/boost/mpl/list/list20.hpp create mode 100644 libraries/boost/include/boost/mpl/list/list20_c.hpp create mode 100644 libraries/boost/include/boost/mpl/list/list30.hpp create mode 100644 libraries/boost/include/boost/mpl/list/list30_c.hpp create mode 100644 libraries/boost/include/boost/mpl/list/list40.hpp create mode 100644 libraries/boost/include/boost/mpl/list/list40_c.hpp create mode 100644 libraries/boost/include/boost/mpl/list/list50.hpp create mode 100644 libraries/boost/include/boost/mpl/list/list50_c.hpp create mode 100644 libraries/boost/include/boost/mpl/list_c.hpp create mode 100644 libraries/boost/include/boost/mpl/logical.hpp create mode 100644 libraries/boost/include/boost/mpl/long.hpp create mode 100644 libraries/boost/include/boost/mpl/long_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/lower_bound.hpp create mode 100644 libraries/boost/include/boost/mpl/map.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/at_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/begin_end_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/clear_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/contains_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/empty_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/erase_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/erase_key_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/has_key_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/include_preprocessed.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/insert_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/insert_range_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/item.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/iterator.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/key_type_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/map0.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/numbered.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/preprocessed/no_ctps/map10.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/preprocessed/no_ctps/map20.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/preprocessed/no_ctps/map30.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/preprocessed/no_ctps/map40.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/preprocessed/no_ctps/map50.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/preprocessed/plain/map10.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/preprocessed/plain/map20.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/preprocessed/plain/map30.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/preprocessed/plain/map40.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/preprocessed/plain/map50.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/preprocessed/typeof_based/map10.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/preprocessed/typeof_based/map20.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/preprocessed/typeof_based/map30.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/preprocessed/typeof_based/map40.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/preprocessed/typeof_based/map50.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/size_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/tag.hpp create mode 100644 libraries/boost/include/boost/mpl/map/aux_/value_type_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/map/map0.hpp create mode 100644 libraries/boost/include/boost/mpl/map/map10.hpp create mode 100644 libraries/boost/include/boost/mpl/map/map20.hpp create mode 100644 libraries/boost/include/boost/mpl/map/map30.hpp create mode 100644 libraries/boost/include/boost/mpl/map/map40.hpp create mode 100644 libraries/boost/include/boost/mpl/map/map50.hpp create mode 100644 libraries/boost/include/boost/mpl/math/fixed_c.hpp create mode 100644 libraries/boost/include/boost/mpl/math/is_even.hpp create mode 100644 libraries/boost/include/boost/mpl/math/rational_c.hpp create mode 100644 libraries/boost/include/boost/mpl/max.hpp create mode 100644 libraries/boost/include/boost/mpl/max_element.hpp create mode 100644 libraries/boost/include/boost/mpl/min.hpp create mode 100644 libraries/boost/include/boost/mpl/min_element.hpp create mode 100644 libraries/boost/include/boost/mpl/min_max.hpp create mode 100644 libraries/boost/include/boost/mpl/minus.hpp create mode 100644 libraries/boost/include/boost/mpl/modulus.hpp create mode 100644 libraries/boost/include/boost/mpl/multiplies.hpp create mode 100644 libraries/boost/include/boost/mpl/multiset/aux_/count_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/multiset/aux_/insert_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/multiset/aux_/item.hpp create mode 100644 libraries/boost/include/boost/mpl/multiset/aux_/multiset0.hpp create mode 100644 libraries/boost/include/boost/mpl/multiset/aux_/tag.hpp create mode 100644 libraries/boost/include/boost/mpl/multiset/multiset0.hpp create mode 100644 libraries/boost/include/boost/mpl/negate.hpp create mode 100644 libraries/boost/include/boost/mpl/negate.hpp356109 create mode 100644 libraries/boost/include/boost/mpl/next.hpp create mode 100644 libraries/boost/include/boost/mpl/next_prior.hpp create mode 100644 libraries/boost/include/boost/mpl/next_prior.hpp297296 create mode 100644 libraries/boost/include/boost/mpl/not.hpp create mode 100644 libraries/boost/include/boost/mpl/not.hpp63250 create mode 100644 libraries/boost/include/boost/mpl/not_equal_to.hpp create mode 100644 libraries/boost/include/boost/mpl/numeric_cast.hpp create mode 100644 libraries/boost/include/boost/mpl/numeric_cast.hpp308155 create mode 100644 libraries/boost/include/boost/mpl/or.hpp create mode 100644 libraries/boost/include/boost/mpl/order.hpp create mode 100644 libraries/boost/include/boost/mpl/order_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/pair.hpp create mode 100644 libraries/boost/include/boost/mpl/pair_view.hpp create mode 100644 libraries/boost/include/boost/mpl/partition.hpp create mode 100644 libraries/boost/include/boost/mpl/placeholders.hpp create mode 100644 libraries/boost/include/boost/mpl/plus.hpp create mode 100644 libraries/boost/include/boost/mpl/pop_back.hpp create mode 100644 libraries/boost/include/boost/mpl/pop_back_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/pop_front.hpp create mode 100644 libraries/boost/include/boost/mpl/pop_front_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/print.hpp create mode 100644 libraries/boost/include/boost/mpl/prior.hpp create mode 100644 libraries/boost/include/boost/mpl/protect.hpp create mode 100644 libraries/boost/include/boost/mpl/protect.hpp320027 create mode 100644 libraries/boost/include/boost/mpl/push_back.hpp create mode 100644 libraries/boost/include/boost/mpl/push_back_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/push_front.hpp create mode 100644 libraries/boost/include/boost/mpl/push_front_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/quote.hpp create mode 100644 libraries/boost/include/boost/mpl/range_c.hpp create mode 100644 libraries/boost/include/boost/mpl/remove.hpp create mode 100644 libraries/boost/include/boost/mpl/remove_if.hpp create mode 100644 libraries/boost/include/boost/mpl/replace.hpp create mode 100644 libraries/boost/include/boost/mpl/replace_if.hpp create mode 100644 libraries/boost/include/boost/mpl/reverse.hpp create mode 100644 libraries/boost/include/boost/mpl/reverse_fold.hpp create mode 100644 libraries/boost/include/boost/mpl/reverse_iter_fold.hpp create mode 100644 libraries/boost/include/boost/mpl/same_as.hpp create mode 100644 libraries/boost/include/boost/mpl/sequence_tag.hpp create mode 100644 libraries/boost/include/boost/mpl/sequence_tag.hpp90900 create mode 100644 libraries/boost/include/boost/mpl/sequence_tag_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/sequence_tag_fwd.hpp74544 create mode 100644 libraries/boost/include/boost/mpl/set.hpp create mode 100644 libraries/boost/include/boost/mpl/set/aux_/at_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/set/aux_/begin_end_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/set/aux_/clear_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/set/aux_/empty_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/set/aux_/erase_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/set/aux_/erase_key_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/set/aux_/has_key_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/set/aux_/include_preprocessed.hpp create mode 100644 libraries/boost/include/boost/mpl/set/aux_/insert_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/set/aux_/insert_range_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/set/aux_/item.hpp create mode 100644 libraries/boost/include/boost/mpl/set/aux_/iterator.hpp create mode 100644 libraries/boost/include/boost/mpl/set/aux_/key_type_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/set/aux_/numbered.hpp create mode 100644 libraries/boost/include/boost/mpl/set/aux_/numbered_c.hpp create mode 100644 libraries/boost/include/boost/mpl/set/aux_/preprocessed/plain/set10.hpp create mode 100644 libraries/boost/include/boost/mpl/set/aux_/preprocessed/plain/set10_c.hpp create mode 100644 libraries/boost/include/boost/mpl/set/aux_/preprocessed/plain/set20.hpp create mode 100644 libraries/boost/include/boost/mpl/set/aux_/preprocessed/plain/set20_c.hpp create mode 100644 libraries/boost/include/boost/mpl/set/aux_/preprocessed/plain/set30.hpp create mode 100644 libraries/boost/include/boost/mpl/set/aux_/preprocessed/plain/set30_c.hpp create mode 100644 libraries/boost/include/boost/mpl/set/aux_/preprocessed/plain/set40.hpp create mode 100644 libraries/boost/include/boost/mpl/set/aux_/preprocessed/plain/set40_c.hpp create mode 100644 libraries/boost/include/boost/mpl/set/aux_/preprocessed/plain/set50.hpp create mode 100644 libraries/boost/include/boost/mpl/set/aux_/preprocessed/plain/set50_c.hpp create mode 100644 libraries/boost/include/boost/mpl/set/aux_/set0.hpp create mode 100644 libraries/boost/include/boost/mpl/set/aux_/size_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/set/aux_/tag.hpp create mode 100644 libraries/boost/include/boost/mpl/set/aux_/value_type_impl.hpp create mode 100644 libraries/boost/include/boost/mpl/set/set0.hpp create mode 100644 libraries/boost/include/boost/mpl/set/set0_c.hpp create mode 100644 libraries/boost/include/boost/mpl/set/set10.hpp create mode 100644 libraries/boost/include/boost/mpl/set/set10_c.hpp create mode 100644 libraries/boost/include/boost/mpl/set/set20.hpp create mode 100644 libraries/boost/include/boost/mpl/set/set20_c.hpp create mode 100644 libraries/boost/include/boost/mpl/set/set30.hpp create mode 100644 libraries/boost/include/boost/mpl/set/set30_c.hpp create mode 100644 libraries/boost/include/boost/mpl/set/set40.hpp create mode 100644 libraries/boost/include/boost/mpl/set/set40_c.hpp create mode 100644 libraries/boost/include/boost/mpl/set/set50.hpp create mode 100644 libraries/boost/include/boost/mpl/set/set50_c.hpp create mode 100644 libraries/boost/include/boost/mpl/set_c.hpp create mode 100644 libraries/boost/include/boost/mpl/shift_left.hpp create mode 100644 libraries/boost/include/boost/mpl/shift_right.hpp create mode 100644 libraries/boost/include/boost/mpl/single_view.hpp create mode 100644 libraries/boost/include/boost/mpl/size.hpp create mode 100644 libraries/boost/include/boost/mpl/size_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/size_t.hpp create mode 100644 libraries/boost/include/boost/mpl/size_t_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/sizeof.hpp create mode 100644 libraries/boost/include/boost/mpl/sort.hpp create mode 100644 libraries/boost/include/boost/mpl/stable_partition.hpp create mode 100644 libraries/boost/include/boost/mpl/string.hpp create mode 100644 libraries/boost/include/boost/mpl/switch.hpp create mode 100644 libraries/boost/include/boost/mpl/tag.hpp create mode 100644 libraries/boost/include/boost/mpl/tag.hpp308253 create mode 100644 libraries/boost/include/boost/mpl/times.hpp create mode 100644 libraries/boost/include/boost/mpl/transform.hpp create mode 100644 libraries/boost/include/boost/mpl/transform_view.hpp create mode 100644 libraries/boost/include/boost/mpl/unique.hpp create mode 100644 libraries/boost/include/boost/mpl/unpack_args.hpp create mode 100644 libraries/boost/include/boost/mpl/upper_bound.hpp create mode 100644 libraries/boost/include/boost/mpl/value_type.hpp create mode 100644 libraries/boost/include/boost/mpl/value_type_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/vector.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/O1_size.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/at.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/back.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/begin_end.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/clear.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/empty.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/front.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/include_preprocessed.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/item.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/iterator.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/numbered.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/numbered_c.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/pop_back.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/pop_front.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10_c.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20_c.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30_c.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40_c.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50_c.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/preprocessed/plain/vector10.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/preprocessed/plain/vector10_c.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/preprocessed/plain/vector20.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/preprocessed/plain/vector20_c.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/preprocessed/plain/vector30.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/preprocessed/plain/vector30_c.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/preprocessed/plain/vector40.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/preprocessed/plain/vector40_c.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/preprocessed/plain/vector50.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/preprocessed/plain/vector50_c.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10_c.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20_c.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30_c.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40_c.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50_c.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/push_back.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/push_front.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/size.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/tag.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/aux_/vector0.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/vector0.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/vector0_c.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/vector10.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/vector10_c.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/vector20.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/vector20_c.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/vector30.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/vector30_c.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/vector40.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/vector40_c.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/vector50.hpp create mode 100644 libraries/boost/include/boost/mpl/vector/vector50_c.hpp create mode 100644 libraries/boost/include/boost/mpl/vector_c.hpp create mode 100644 libraries/boost/include/boost/mpl/void.hpp create mode 100644 libraries/boost/include/boost/mpl/void.hpp74545 create mode 100644 libraries/boost/include/boost/mpl/void_fwd.hpp create mode 100644 libraries/boost/include/boost/mpl/zip_view.hpp create mode 100644 libraries/boost/include/boost/pfr/detail/cast_to_layout_compatible.hpp410352 create mode 100644 libraries/boost/include/boost/pfr/detail/core14_loophole.hpp410351 create mode 100644 libraries/boost/include/boost/pfr/detail/detectors.hpp410378 create mode 100644 libraries/boost/include/boost/pfr/detail/fields_count.hpp410345 create mode 100644 libraries/boost/include/boost/pfr/detail/for_each_field_impl.hpp410342 create mode 100644 libraries/boost/include/boost/pfr/detail/functional.hpp410370 create mode 100644 libraries/boost/include/boost/pfr/detail/io.hpp410380 create mode 100644 libraries/boost/include/boost/pfr/detail/make_flat_tuple_of_references.hpp410363 create mode 100644 libraries/boost/include/boost/pfr/detail/offset_based_getter.hpp410361 create mode 100644 libraries/boost/include/boost/pfr/detail/rvalue_t.hpp410343 create mode 100644 libraries/boost/include/boost/pfr/detail/sequence_tuple.hpp410340 create mode 100644 libraries/boost/include/boost/pfr/detail/stdtuple.hpp410341 create mode 100644 libraries/boost/include/boost/pfr/flat/core.hpp412710 create mode 100644 libraries/boost/include/boost/pfr/flat/functors.hpp412712 create mode 100644 libraries/boost/include/boost/pfr/flat/io.hpp412714 create mode 100644 libraries/boost/include/boost/pfr/flat/ops.hpp412713 create mode 100644 libraries/boost/include/boost/pfr/flat/tuple_size.hpp412711 create mode 100644 libraries/boost/include/boost/pfr/precise/core.hpp410337 create mode 100644 libraries/boost/include/boost/pfr/precise/functors.hpp410369 create mode 100644 libraries/boost/include/boost/pfr/precise/io.hpp410379 create mode 100644 libraries/boost/include/boost/pfr/precise/ops.hpp410377 create mode 100644 libraries/boost/include/boost/pfr/precise/tuple_size.hpp410344 create mode 100644 libraries/boost/include/boost/preprocessor.hpp create mode 100644 libraries/boost/include/boost/preprocessor/arithmetic.hpp create mode 100644 libraries/boost/include/boost/preprocessor/arithmetic/add.hpp create mode 100644 libraries/boost/include/boost/preprocessor/arithmetic/dec.hpp create mode 100644 libraries/boost/include/boost/preprocessor/arithmetic/detail/div_base.hpp create mode 100644 libraries/boost/include/boost/preprocessor/arithmetic/div.hpp create mode 100644 libraries/boost/include/boost/preprocessor/arithmetic/inc.hpp create mode 100644 libraries/boost/include/boost/preprocessor/arithmetic/mod.hpp create mode 100644 libraries/boost/include/boost/preprocessor/arithmetic/mul.hpp create mode 100644 libraries/boost/include/boost/preprocessor/arithmetic/sub.hpp create mode 100644 libraries/boost/include/boost/preprocessor/array.hpp create mode 100644 libraries/boost/include/boost/preprocessor/array/data.hpp create mode 100644 libraries/boost/include/boost/preprocessor/array/detail/get_data.hpp create mode 100644 libraries/boost/include/boost/preprocessor/array/elem.hpp create mode 100644 libraries/boost/include/boost/preprocessor/array/enum.hpp create mode 100644 libraries/boost/include/boost/preprocessor/array/insert.hpp create mode 100644 libraries/boost/include/boost/preprocessor/array/pop_back.hpp create mode 100644 libraries/boost/include/boost/preprocessor/array/pop_front.hpp create mode 100644 libraries/boost/include/boost/preprocessor/array/push_back.hpp create mode 100644 libraries/boost/include/boost/preprocessor/array/push_front.hpp create mode 100644 libraries/boost/include/boost/preprocessor/array/remove.hpp create mode 100644 libraries/boost/include/boost/preprocessor/array/replace.hpp create mode 100644 libraries/boost/include/boost/preprocessor/array/reverse.hpp create mode 100644 libraries/boost/include/boost/preprocessor/array/size.hpp create mode 100644 libraries/boost/include/boost/preprocessor/array/to_list.hpp create mode 100644 libraries/boost/include/boost/preprocessor/array/to_seq.hpp create mode 100644 libraries/boost/include/boost/preprocessor/array/to_tuple.hpp create mode 100644 libraries/boost/include/boost/preprocessor/assert_msg.hpp create mode 100644 libraries/boost/include/boost/preprocessor/cat.hpp create mode 100644 libraries/boost/include/boost/preprocessor/comma.hpp create mode 100644 libraries/boost/include/boost/preprocessor/comma_if.hpp create mode 100644 libraries/boost/include/boost/preprocessor/comparison.hpp create mode 100644 libraries/boost/include/boost/preprocessor/comparison/equal.hpp create mode 100644 libraries/boost/include/boost/preprocessor/comparison/greater.hpp create mode 100644 libraries/boost/include/boost/preprocessor/comparison/greater_equal.hpp create mode 100644 libraries/boost/include/boost/preprocessor/comparison/less.hpp create mode 100644 libraries/boost/include/boost/preprocessor/comparison/less_equal.hpp create mode 100644 libraries/boost/include/boost/preprocessor/comparison/not_equal.hpp create mode 100644 libraries/boost/include/boost/preprocessor/config/config.hpp create mode 100644 libraries/boost/include/boost/preprocessor/config/limits.hpp create mode 100644 libraries/boost/include/boost/preprocessor/control.hpp create mode 100644 libraries/boost/include/boost/preprocessor/control/deduce_d.hpp create mode 100644 libraries/boost/include/boost/preprocessor/control/detail/dmc/while.hpp create mode 100644 libraries/boost/include/boost/preprocessor/control/detail/edg/while.hpp create mode 100644 libraries/boost/include/boost/preprocessor/control/detail/msvc/while.hpp create mode 100644 libraries/boost/include/boost/preprocessor/control/detail/while.hpp create mode 100644 libraries/boost/include/boost/preprocessor/control/expr_if.hpp create mode 100644 libraries/boost/include/boost/preprocessor/control/expr_iif.hpp create mode 100644 libraries/boost/include/boost/preprocessor/control/if.hpp create mode 100644 libraries/boost/include/boost/preprocessor/control/iif.hpp create mode 100644 libraries/boost/include/boost/preprocessor/control/while.hpp create mode 100644 libraries/boost/include/boost/preprocessor/debug.hpp create mode 100644 libraries/boost/include/boost/preprocessor/debug/assert.hpp create mode 100644 libraries/boost/include/boost/preprocessor/debug/error.hpp create mode 100644 libraries/boost/include/boost/preprocessor/debug/line.hpp create mode 100644 libraries/boost/include/boost/preprocessor/dec.hpp create mode 100644 libraries/boost/include/boost/preprocessor/detail/auto_rec.hpp create mode 100644 libraries/boost/include/boost/preprocessor/detail/check.hpp create mode 100644 libraries/boost/include/boost/preprocessor/detail/dmc/auto_rec.hpp create mode 100644 libraries/boost/include/boost/preprocessor/detail/is_binary.hpp create mode 100644 libraries/boost/include/boost/preprocessor/detail/is_nullary.hpp create mode 100644 libraries/boost/include/boost/preprocessor/detail/is_unary.hpp create mode 100644 libraries/boost/include/boost/preprocessor/detail/null.hpp create mode 100644 libraries/boost/include/boost/preprocessor/detail/split.hpp create mode 100644 libraries/boost/include/boost/preprocessor/empty.hpp create mode 100644 libraries/boost/include/boost/preprocessor/enum.hpp create mode 100644 libraries/boost/include/boost/preprocessor/enum_params.hpp create mode 100644 libraries/boost/include/boost/preprocessor/enum_params_with_a_default.hpp create mode 100644 libraries/boost/include/boost/preprocessor/enum_params_with_defaults.hpp create mode 100644 libraries/boost/include/boost/preprocessor/enum_shifted.hpp create mode 100644 libraries/boost/include/boost/preprocessor/enum_shifted_params.hpp create mode 100644 libraries/boost/include/boost/preprocessor/expand.hpp create mode 100644 libraries/boost/include/boost/preprocessor/expr_if.hpp create mode 100644 libraries/boost/include/boost/preprocessor/facilities.hpp create mode 100644 libraries/boost/include/boost/preprocessor/facilities/apply.hpp create mode 100644 libraries/boost/include/boost/preprocessor/facilities/detail/is_empty.hpp create mode 100644 libraries/boost/include/boost/preprocessor/facilities/empty.hpp create mode 100644 libraries/boost/include/boost/preprocessor/facilities/expand.hpp create mode 100644 libraries/boost/include/boost/preprocessor/facilities/identity.hpp create mode 100644 libraries/boost/include/boost/preprocessor/facilities/intercept.hpp create mode 100644 libraries/boost/include/boost/preprocessor/facilities/is_1.hpp create mode 100644 libraries/boost/include/boost/preprocessor/facilities/is_empty.hpp create mode 100644 libraries/boost/include/boost/preprocessor/facilities/is_empty_or_1.hpp create mode 100644 libraries/boost/include/boost/preprocessor/facilities/is_empty_variadic.hpp create mode 100644 libraries/boost/include/boost/preprocessor/facilities/overload.hpp create mode 100644 libraries/boost/include/boost/preprocessor/for.hpp create mode 100644 libraries/boost/include/boost/preprocessor/identity.hpp create mode 100644 libraries/boost/include/boost/preprocessor/if.hpp create mode 100644 libraries/boost/include/boost/preprocessor/inc.hpp create mode 100644 libraries/boost/include/boost/preprocessor/iterate.hpp create mode 100644 libraries/boost/include/boost/preprocessor/iteration.hpp create mode 100644 libraries/boost/include/boost/preprocessor/iteration/detail/bounds/lower1.hpp create mode 100644 libraries/boost/include/boost/preprocessor/iteration/detail/bounds/lower2.hpp create mode 100644 libraries/boost/include/boost/preprocessor/iteration/detail/bounds/lower3.hpp create mode 100644 libraries/boost/include/boost/preprocessor/iteration/detail/bounds/lower4.hpp create mode 100644 libraries/boost/include/boost/preprocessor/iteration/detail/bounds/lower5.hpp create mode 100644 libraries/boost/include/boost/preprocessor/iteration/detail/bounds/upper1.hpp create mode 100644 libraries/boost/include/boost/preprocessor/iteration/detail/bounds/upper2.hpp create mode 100644 libraries/boost/include/boost/preprocessor/iteration/detail/bounds/upper3.hpp create mode 100644 libraries/boost/include/boost/preprocessor/iteration/detail/bounds/upper4.hpp create mode 100644 libraries/boost/include/boost/preprocessor/iteration/detail/bounds/upper5.hpp create mode 100644 libraries/boost/include/boost/preprocessor/iteration/detail/finish.hpp create mode 100644 libraries/boost/include/boost/preprocessor/iteration/detail/iter/forward1.hpp create mode 100644 libraries/boost/include/boost/preprocessor/iteration/detail/iter/forward2.hpp create mode 100644 libraries/boost/include/boost/preprocessor/iteration/detail/iter/forward3.hpp create mode 100644 libraries/boost/include/boost/preprocessor/iteration/detail/iter/forward4.hpp create mode 100644 libraries/boost/include/boost/preprocessor/iteration/detail/iter/forward5.hpp create mode 100644 libraries/boost/include/boost/preprocessor/iteration/detail/iter/reverse1.hpp create mode 100644 libraries/boost/include/boost/preprocessor/iteration/detail/iter/reverse2.hpp create mode 100644 libraries/boost/include/boost/preprocessor/iteration/detail/iter/reverse3.hpp create mode 100644 libraries/boost/include/boost/preprocessor/iteration/detail/iter/reverse4.hpp create mode 100644 libraries/boost/include/boost/preprocessor/iteration/detail/iter/reverse5.hpp create mode 100644 libraries/boost/include/boost/preprocessor/iteration/detail/local.hpp create mode 100644 libraries/boost/include/boost/preprocessor/iteration/detail/rlocal.hpp create mode 100644 libraries/boost/include/boost/preprocessor/iteration/detail/self.hpp create mode 100644 libraries/boost/include/boost/preprocessor/iteration/detail/start.hpp create mode 100644 libraries/boost/include/boost/preprocessor/iteration/iterate.hpp create mode 100644 libraries/boost/include/boost/preprocessor/iteration/local.hpp create mode 100644 libraries/boost/include/boost/preprocessor/iteration/self.hpp create mode 100644 libraries/boost/include/boost/preprocessor/library.hpp create mode 100644 libraries/boost/include/boost/preprocessor/limits.hpp create mode 100644 libraries/boost/include/boost/preprocessor/list.hpp create mode 100644 libraries/boost/include/boost/preprocessor/list/adt.hpp create mode 100644 libraries/boost/include/boost/preprocessor/list/append.hpp create mode 100644 libraries/boost/include/boost/preprocessor/list/at.hpp create mode 100644 libraries/boost/include/boost/preprocessor/list/cat.hpp create mode 100644 libraries/boost/include/boost/preprocessor/list/detail/dmc/fold_left.hpp create mode 100644 libraries/boost/include/boost/preprocessor/list/detail/edg/fold_left.hpp create mode 100644 libraries/boost/include/boost/preprocessor/list/detail/edg/fold_right.hpp create mode 100644 libraries/boost/include/boost/preprocessor/list/detail/fold_left.hpp create mode 100644 libraries/boost/include/boost/preprocessor/list/detail/fold_right.hpp create mode 100644 libraries/boost/include/boost/preprocessor/list/enum.hpp create mode 100644 libraries/boost/include/boost/preprocessor/list/filter.hpp create mode 100644 libraries/boost/include/boost/preprocessor/list/first_n.hpp create mode 100644 libraries/boost/include/boost/preprocessor/list/fold_left.hpp create mode 100644 libraries/boost/include/boost/preprocessor/list/fold_right.hpp create mode 100644 libraries/boost/include/boost/preprocessor/list/for_each.hpp create mode 100644 libraries/boost/include/boost/preprocessor/list/for_each_i.hpp create mode 100644 libraries/boost/include/boost/preprocessor/list/for_each_product.hpp create mode 100644 libraries/boost/include/boost/preprocessor/list/rest_n.hpp create mode 100644 libraries/boost/include/boost/preprocessor/list/reverse.hpp create mode 100644 libraries/boost/include/boost/preprocessor/list/size.hpp create mode 100644 libraries/boost/include/boost/preprocessor/list/to_array.hpp create mode 100644 libraries/boost/include/boost/preprocessor/list/to_seq.hpp create mode 100644 libraries/boost/include/boost/preprocessor/list/to_tuple.hpp create mode 100644 libraries/boost/include/boost/preprocessor/list/transform.hpp create mode 100644 libraries/boost/include/boost/preprocessor/logical.hpp create mode 100644 libraries/boost/include/boost/preprocessor/logical/and.hpp create mode 100644 libraries/boost/include/boost/preprocessor/logical/bitand.hpp create mode 100644 libraries/boost/include/boost/preprocessor/logical/bitnor.hpp create mode 100644 libraries/boost/include/boost/preprocessor/logical/bitor.hpp create mode 100644 libraries/boost/include/boost/preprocessor/logical/bitxor.hpp create mode 100644 libraries/boost/include/boost/preprocessor/logical/bool.hpp create mode 100644 libraries/boost/include/boost/preprocessor/logical/compl.hpp create mode 100644 libraries/boost/include/boost/preprocessor/logical/nor.hpp create mode 100644 libraries/boost/include/boost/preprocessor/logical/not.hpp create mode 100644 libraries/boost/include/boost/preprocessor/logical/or.hpp create mode 100644 libraries/boost/include/boost/preprocessor/logical/xor.hpp create mode 100644 libraries/boost/include/boost/preprocessor/max.hpp create mode 100644 libraries/boost/include/boost/preprocessor/min.hpp create mode 100644 libraries/boost/include/boost/preprocessor/punctuation.hpp create mode 100644 libraries/boost/include/boost/preprocessor/punctuation/comma.hpp create mode 100644 libraries/boost/include/boost/preprocessor/punctuation/comma_if.hpp create mode 100644 libraries/boost/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp create mode 100644 libraries/boost/include/boost/preprocessor/punctuation/is_begin_parens.hpp create mode 100644 libraries/boost/include/boost/preprocessor/punctuation/paren.hpp create mode 100644 libraries/boost/include/boost/preprocessor/punctuation/paren_if.hpp create mode 100644 libraries/boost/include/boost/preprocessor/punctuation/remove_parens.hpp create mode 100644 libraries/boost/include/boost/preprocessor/repeat.hpp create mode 100644 libraries/boost/include/boost/preprocessor/repeat_2nd.hpp create mode 100644 libraries/boost/include/boost/preprocessor/repeat_3rd.hpp create mode 100644 libraries/boost/include/boost/preprocessor/repeat_from_to.hpp create mode 100644 libraries/boost/include/boost/preprocessor/repeat_from_to_2nd.hpp create mode 100644 libraries/boost/include/boost/preprocessor/repeat_from_to_3rd.hpp create mode 100644 libraries/boost/include/boost/preprocessor/repetition.hpp create mode 100644 libraries/boost/include/boost/preprocessor/repetition/deduce_r.hpp create mode 100644 libraries/boost/include/boost/preprocessor/repetition/deduce_z.hpp create mode 100644 libraries/boost/include/boost/preprocessor/repetition/detail/dmc/for.hpp create mode 100644 libraries/boost/include/boost/preprocessor/repetition/detail/edg/for.hpp create mode 100644 libraries/boost/include/boost/preprocessor/repetition/detail/for.hpp create mode 100644 libraries/boost/include/boost/preprocessor/repetition/detail/msvc/for.hpp create mode 100644 libraries/boost/include/boost/preprocessor/repetition/enum.hpp create mode 100644 libraries/boost/include/boost/preprocessor/repetition/enum_binary_params.hpp create mode 100644 libraries/boost/include/boost/preprocessor/repetition/enum_params.hpp create mode 100644 libraries/boost/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp create mode 100644 libraries/boost/include/boost/preprocessor/repetition/enum_params_with_defaults.hpp create mode 100644 libraries/boost/include/boost/preprocessor/repetition/enum_shifted.hpp create mode 100644 libraries/boost/include/boost/preprocessor/repetition/enum_shifted_binary_params.hpp create mode 100644 libraries/boost/include/boost/preprocessor/repetition/enum_shifted_params.hpp create mode 100644 libraries/boost/include/boost/preprocessor/repetition/enum_trailing.hpp create mode 100644 libraries/boost/include/boost/preprocessor/repetition/enum_trailing_binary_params.hpp create mode 100644 libraries/boost/include/boost/preprocessor/repetition/enum_trailing_params.hpp create mode 100644 libraries/boost/include/boost/preprocessor/repetition/for.hpp create mode 100644 libraries/boost/include/boost/preprocessor/repetition/repeat.hpp create mode 100644 libraries/boost/include/boost/preprocessor/repetition/repeat_from_to.hpp create mode 100644 libraries/boost/include/boost/preprocessor/selection.hpp create mode 100644 libraries/boost/include/boost/preprocessor/selection/max.hpp create mode 100644 libraries/boost/include/boost/preprocessor/selection/min.hpp create mode 100644 libraries/boost/include/boost/preprocessor/seq.hpp create mode 100644 libraries/boost/include/boost/preprocessor/seq/cat.hpp create mode 100644 libraries/boost/include/boost/preprocessor/seq/detail/binary_transform.hpp create mode 100644 libraries/boost/include/boost/preprocessor/seq/detail/is_empty.hpp create mode 100644 libraries/boost/include/boost/preprocessor/seq/detail/split.hpp create mode 100644 libraries/boost/include/boost/preprocessor/seq/detail/to_list_msvc.hpp create mode 100644 libraries/boost/include/boost/preprocessor/seq/elem.hpp create mode 100644 libraries/boost/include/boost/preprocessor/seq/enum.hpp create mode 100644 libraries/boost/include/boost/preprocessor/seq/filter.hpp create mode 100644 libraries/boost/include/boost/preprocessor/seq/first_n.hpp create mode 100644 libraries/boost/include/boost/preprocessor/seq/fold_left.hpp create mode 100644 libraries/boost/include/boost/preprocessor/seq/fold_right.hpp create mode 100644 libraries/boost/include/boost/preprocessor/seq/for_each.hpp create mode 100644 libraries/boost/include/boost/preprocessor/seq/for_each_i.hpp create mode 100644 libraries/boost/include/boost/preprocessor/seq/for_each_product.hpp create mode 100644 libraries/boost/include/boost/preprocessor/seq/insert.hpp create mode 100644 libraries/boost/include/boost/preprocessor/seq/pop_back.hpp create mode 100644 libraries/boost/include/boost/preprocessor/seq/pop_front.hpp create mode 100644 libraries/boost/include/boost/preprocessor/seq/push_back.hpp create mode 100644 libraries/boost/include/boost/preprocessor/seq/push_front.hpp create mode 100644 libraries/boost/include/boost/preprocessor/seq/remove.hpp create mode 100644 libraries/boost/include/boost/preprocessor/seq/replace.hpp create mode 100644 libraries/boost/include/boost/preprocessor/seq/rest_n.hpp create mode 100644 libraries/boost/include/boost/preprocessor/seq/reverse.hpp create mode 100644 libraries/boost/include/boost/preprocessor/seq/seq.hpp create mode 100644 libraries/boost/include/boost/preprocessor/seq/size.hpp create mode 100644 libraries/boost/include/boost/preprocessor/seq/subseq.hpp create mode 100644 libraries/boost/include/boost/preprocessor/seq/to_array.hpp create mode 100644 libraries/boost/include/boost/preprocessor/seq/to_list.hpp create mode 100644 libraries/boost/include/boost/preprocessor/seq/to_tuple.hpp create mode 100644 libraries/boost/include/boost/preprocessor/seq/transform.hpp create mode 100644 libraries/boost/include/boost/preprocessor/seq/variadic_seq_to_seq.hpp create mode 100644 libraries/boost/include/boost/preprocessor/slot.hpp create mode 100644 libraries/boost/include/boost/preprocessor/slot/counter.hpp create mode 100644 libraries/boost/include/boost/preprocessor/slot/detail/counter.hpp create mode 100644 libraries/boost/include/boost/preprocessor/slot/detail/def.hpp create mode 100644 libraries/boost/include/boost/preprocessor/slot/detail/shared.hpp create mode 100644 libraries/boost/include/boost/preprocessor/slot/detail/slot1.hpp create mode 100644 libraries/boost/include/boost/preprocessor/slot/detail/slot2.hpp create mode 100644 libraries/boost/include/boost/preprocessor/slot/detail/slot3.hpp create mode 100644 libraries/boost/include/boost/preprocessor/slot/detail/slot4.hpp create mode 100644 libraries/boost/include/boost/preprocessor/slot/detail/slot5.hpp create mode 100644 libraries/boost/include/boost/preprocessor/slot/slot.hpp create mode 100644 libraries/boost/include/boost/preprocessor/stringize.hpp create mode 100644 libraries/boost/include/boost/preprocessor/tuple.hpp create mode 100644 libraries/boost/include/boost/preprocessor/tuple/detail/is_single_return.hpp create mode 100644 libraries/boost/include/boost/preprocessor/tuple/eat.hpp create mode 100644 libraries/boost/include/boost/preprocessor/tuple/elem.hpp create mode 100644 libraries/boost/include/boost/preprocessor/tuple/enum.hpp create mode 100644 libraries/boost/include/boost/preprocessor/tuple/insert.hpp create mode 100644 libraries/boost/include/boost/preprocessor/tuple/pop_back.hpp create mode 100644 libraries/boost/include/boost/preprocessor/tuple/pop_front.hpp create mode 100644 libraries/boost/include/boost/preprocessor/tuple/push_back.hpp create mode 100644 libraries/boost/include/boost/preprocessor/tuple/push_front.hpp create mode 100644 libraries/boost/include/boost/preprocessor/tuple/rem.hpp create mode 100644 libraries/boost/include/boost/preprocessor/tuple/remove.hpp create mode 100644 libraries/boost/include/boost/preprocessor/tuple/replace.hpp create mode 100644 libraries/boost/include/boost/preprocessor/tuple/reverse.hpp create mode 100644 libraries/boost/include/boost/preprocessor/tuple/size.hpp create mode 100644 libraries/boost/include/boost/preprocessor/tuple/to_array.hpp create mode 100644 libraries/boost/include/boost/preprocessor/tuple/to_list.hpp create mode 100644 libraries/boost/include/boost/preprocessor/tuple/to_seq.hpp create mode 100644 libraries/boost/include/boost/preprocessor/variadic.hpp create mode 100644 libraries/boost/include/boost/preprocessor/variadic/detail/is_single_return.hpp create mode 100644 libraries/boost/include/boost/preprocessor/variadic/elem.hpp create mode 100644 libraries/boost/include/boost/preprocessor/variadic/size.hpp create mode 100644 libraries/boost/include/boost/preprocessor/variadic/to_array.hpp create mode 100644 libraries/boost/include/boost/preprocessor/variadic/to_list.hpp create mode 100644 libraries/boost/include/boost/preprocessor/variadic/to_seq.hpp create mode 100644 libraries/boost/include/boost/preprocessor/variadic/to_tuple.hpp create mode 100644 libraries/boost/include/boost/preprocessor/while.hpp create mode 100644 libraries/boost/include/boost/preprocessor/wstringize.hpp create mode 100644 libraries/boost/include/boost/ref.hpp create mode 100644 libraries/boost/include/boost/static_assert.hpp create mode 100644 libraries/boost/include/boost/type_traits/add_const.hpp create mode 100644 libraries/boost/include/boost/type_traits/add_const.hpp129215 create mode 100644 libraries/boost/include/boost/type_traits/add_cv.hpp create mode 100644 libraries/boost/include/boost/type_traits/add_lvalue_reference.hpp create mode 100644 libraries/boost/include/boost/type_traits/add_pointer.hpp create mode 100644 libraries/boost/include/boost/type_traits/add_reference.hpp create mode 100644 libraries/boost/include/boost/type_traits/add_reference.hpp57241 create mode 100644 libraries/boost/include/boost/type_traits/add_rvalue_reference.hpp create mode 100644 libraries/boost/include/boost/type_traits/add_rvalue_reference.hpp129929 create mode 100644 libraries/boost/include/boost/type_traits/add_volatile.hpp create mode 100644 libraries/boost/include/boost/type_traits/aligned_storage.hpp create mode 100644 libraries/boost/include/boost/type_traits/alignment_of.hpp create mode 100644 libraries/boost/include/boost/type_traits/alignment_traits.hpp create mode 100644 libraries/boost/include/boost/type_traits/arithmetic_traits.hpp create mode 100644 libraries/boost/include/boost/type_traits/array_traits.hpp create mode 100644 libraries/boost/include/boost/type_traits/broken_compiler_spec.hpp create mode 100644 libraries/boost/include/boost/type_traits/common_type.hpp create mode 100644 libraries/boost/include/boost/type_traits/composite_traits.hpp create mode 100644 libraries/boost/include/boost/type_traits/conditional.hpp create mode 100644 libraries/boost/include/boost/type_traits/conditional.hpp129931 create mode 100644 libraries/boost/include/boost/type_traits/config.hpp create mode 100644 libraries/boost/include/boost/type_traits/conversion_traits.hpp create mode 100644 libraries/boost/include/boost/type_traits/copy_cv.hpp create mode 100644 libraries/boost/include/boost/type_traits/cv_traits.hpp create mode 100644 libraries/boost/include/boost/type_traits/decay.hpp create mode 100644 libraries/boost/include/boost/type_traits/declval.hpp create mode 100644 libraries/boost/include/boost/type_traits/declval.hpp129928 create mode 100644 libraries/boost/include/boost/type_traits/detail/bool_trait_def.hpp create mode 100644 libraries/boost/include/boost/type_traits/detail/bool_trait_undef.hpp create mode 100644 libraries/boost/include/boost/type_traits/detail/common_arithmetic_type.hpp create mode 100644 libraries/boost/include/boost/type_traits/detail/common_type_impl.hpp create mode 100644 libraries/boost/include/boost/type_traits/detail/composite_member_pointer_type.hpp create mode 100644 libraries/boost/include/boost/type_traits/detail/composite_pointer_type.hpp create mode 100644 libraries/boost/include/boost/type_traits/detail/config.hpp create mode 100644 libraries/boost/include/boost/type_traits/detail/detector.hpp create mode 100644 libraries/boost/include/boost/type_traits/detail/has_binary_operator.hpp create mode 100644 libraries/boost/include/boost/type_traits/detail/has_postfix_operator.hpp create mode 100644 libraries/boost/include/boost/type_traits/detail/has_prefix_operator.hpp create mode 100644 libraries/boost/include/boost/type_traits/detail/ice_and.hpp create mode 100644 libraries/boost/include/boost/type_traits/detail/ice_eq.hpp create mode 100644 libraries/boost/include/boost/type_traits/detail/ice_not.hpp create mode 100644 libraries/boost/include/boost/type_traits/detail/ice_or.hpp create mode 100644 libraries/boost/include/boost/type_traits/detail/is_function_ptr_helper.hpp create mode 100644 libraries/boost/include/boost/type_traits/detail/is_function_ptr_helper.hpp56998 create mode 100644 libraries/boost/include/boost/type_traits/detail/is_function_ptr_tester.hpp create mode 100644 libraries/boost/include/boost/type_traits/detail/is_likely_lambda.hpp create mode 100644 libraries/boost/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp create mode 100644 libraries/boost/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp129293 create mode 100644 libraries/boost/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp create mode 100644 libraries/boost/include/boost/type_traits/detail/mp_defer.hpp create mode 100644 libraries/boost/include/boost/type_traits/detail/template_arity_spec.hpp create mode 100644 libraries/boost/include/boost/type_traits/detail/yes_no_type.hpp create mode 100644 libraries/boost/include/boost/type_traits/detected.hpp create mode 100644 libraries/boost/include/boost/type_traits/detected_or.hpp create mode 100644 libraries/boost/include/boost/type_traits/extent.hpp create mode 100644 libraries/boost/include/boost/type_traits/floating_point_promotion.hpp create mode 100644 libraries/boost/include/boost/type_traits/function_traits.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_bit_and.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_bit_and_assign.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_bit_or.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_bit_or_assign.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_bit_xor.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_bit_xor_assign.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_complement.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_dereference.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_divides.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_divides_assign.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_equal_to.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_greater.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_greater_equal.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_left_shift.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_left_shift_assign.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_less.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_less_equal.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_logical_and.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_logical_not.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_logical_or.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_minus.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_minus_assign.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_modulus.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_modulus_assign.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_multiplies.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_multiplies_assign.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_negate.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_new_operator.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_not_equal_to.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_nothrow_assign.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_nothrow_constructor.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_nothrow_copy.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_nothrow_destructor.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_operator.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_plus.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_plus_assign.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_post_decrement.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_post_increment.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_pre_decrement.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_pre_increment.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_right_shift.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_right_shift_assign.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_trivial_assign.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_trivial_constructor.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_trivial_copy.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_trivial_destructor.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_trivial_move_assign.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_trivial_move_constructor.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_unary_minus.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_unary_plus.hpp create mode 100644 libraries/boost/include/boost/type_traits/has_virtual_destructor.hpp create mode 100644 libraries/boost/include/boost/type_traits/ice.hpp create mode 100644 libraries/boost/include/boost/type_traits/integral_constant.hpp create mode 100644 libraries/boost/include/boost/type_traits/integral_constant.hpp56805 create mode 100644 libraries/boost/include/boost/type_traits/integral_promotion.hpp create mode 100644 libraries/boost/include/boost/type_traits/intrinsics.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_abstract.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_arithmetic.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_array.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_array.hpp57174 create mode 100644 libraries/boost/include/boost/type_traits/is_assignable.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_base_and_derived.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_base_and_derived.hpp297191 create mode 100644 libraries/boost/include/boost/type_traits/is_base_of.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_base_of.hpp297190 create mode 100644 libraries/boost/include/boost/type_traits/is_base_of_tr1.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_class.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_class.hpp57232 create mode 100644 libraries/boost/include/boost/type_traits/is_complete.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_complete.hpp56992 create mode 100644 libraries/boost/include/boost/type_traits/is_complex.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_compound.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_const.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_const.hpp63211 create mode 100644 libraries/boost/include/boost/type_traits/is_constructible.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_convertible.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_convertible.hpp56879 create mode 100644 libraries/boost/include/boost/type_traits/is_copy_assignable.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_copy_constructible.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_default_constructible.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_destructible.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_detected.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_detected_convertible.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_detected_exact.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_empty.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_empty.hpp56878 create mode 100644 libraries/boost/include/boost/type_traits/is_enum.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_final.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_float.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_floating_point.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_function.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_function.hpp56994 create mode 100644 libraries/boost/include/boost/type_traits/is_fundamental.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_integral.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_list_constructible.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_lvalue_reference.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_lvalue_reference.hpp56996 create mode 100644 libraries/boost/include/boost/type_traits/is_member_function_pointer.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_member_function_pointer.hpp129285 create mode 100644 libraries/boost/include/boost/type_traits/is_member_object_pointer.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_member_pointer.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_nothrow_move_assignable.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_nothrow_move_constructible.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_nothrow_swappable.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_object.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_pod.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_pointer.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_pointer.hpp129284 create mode 100644 libraries/boost/include/boost/type_traits/is_polymorphic.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_reference.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_reference.hpp56995 create mode 100644 libraries/boost/include/boost/type_traits/is_rvalue_reference.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_rvalue_reference.hpp56997 create mode 100644 libraries/boost/include/boost/type_traits/is_same.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_same.hpp117833 create mode 100644 libraries/boost/include/boost/type_traits/is_scalar.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_signed.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_stateless.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_union.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_unsigned.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_virtual_base_of.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_void.hpp create mode 100644 libraries/boost/include/boost/type_traits/is_void.hpp57173 create mode 100644 libraries/boost/include/boost/type_traits/is_volatile.hpp create mode 100644 libraries/boost/include/boost/type_traits/make_signed.hpp create mode 100644 libraries/boost/include/boost/type_traits/make_unsigned.hpp create mode 100644 libraries/boost/include/boost/type_traits/make_void.hpp create mode 100644 libraries/boost/include/boost/type_traits/nonesuch.hpp create mode 100644 libraries/boost/include/boost/type_traits/object_traits.hpp create mode 100644 libraries/boost/include/boost/type_traits/promote.hpp create mode 100644 libraries/boost/include/boost/type_traits/rank.hpp create mode 100644 libraries/boost/include/boost/type_traits/reference_traits.hpp create mode 100644 libraries/boost/include/boost/type_traits/remove_all_extents.hpp create mode 100644 libraries/boost/include/boost/type_traits/remove_bounds.hpp create mode 100644 libraries/boost/include/boost/type_traits/remove_const.hpp create mode 100644 libraries/boost/include/boost/type_traits/remove_const.hpp63225 create mode 100644 libraries/boost/include/boost/type_traits/remove_cv.hpp create mode 100644 libraries/boost/include/boost/type_traits/remove_cv.hpp57210 create mode 100644 libraries/boost/include/boost/type_traits/remove_cv_ref.hpp create mode 100644 libraries/boost/include/boost/type_traits/remove_extent.hpp create mode 100644 libraries/boost/include/boost/type_traits/remove_pointer.hpp create mode 100644 libraries/boost/include/boost/type_traits/remove_reference.hpp create mode 100644 libraries/boost/include/boost/type_traits/remove_reference.hpp56993 create mode 100644 libraries/boost/include/boost/type_traits/remove_volatile.hpp create mode 100644 libraries/boost/include/boost/type_traits/same_traits.hpp create mode 100644 libraries/boost/include/boost/type_traits/transform_traits.hpp create mode 100644 libraries/boost/include/boost/type_traits/type_identity.hpp create mode 100644 libraries/boost/include/boost/type_traits/type_identity.hpp129932 create mode 100644 libraries/boost/include/boost/type_traits/type_with_alignment.hpp create mode 100644 libraries/boost/include/boost/utility/addressof.hpp create mode 100644 libraries/boost/include/boost/utility/base_from_member.hpp create mode 100644 libraries/boost/include/boost/utility/binary.hpp create mode 100644 libraries/boost/include/boost/utility/compare_pointees.hpp create mode 100644 libraries/boost/include/boost/utility/declval.hpp create mode 100644 libraries/boost/include/boost/utility/detail/in_place_factory_prefix.hpp create mode 100644 libraries/boost/include/boost/utility/detail/in_place_factory_suffix.hpp create mode 100644 libraries/boost/include/boost/utility/detail/minstd_rand.hpp create mode 100644 libraries/boost/include/boost/utility/detail/result_of_iterate.hpp create mode 100644 libraries/boost/include/boost/utility/enable_if.hpp create mode 100644 libraries/boost/include/boost/utility/explicit_operator_bool.hpp create mode 100644 libraries/boost/include/boost/utility/identity_type.hpp create mode 100644 libraries/boost/include/boost/utility/in_place_factory.hpp create mode 100644 libraries/boost/include/boost/utility/result_of.hpp create mode 100644 libraries/boost/include/boost/utility/result_of.hpp129237 create mode 100644 libraries/boost/include/boost/utility/string_ref.hpp create mode 100644 libraries/boost/include/boost/utility/string_ref_fwd.hpp create mode 100644 libraries/boost/include/boost/utility/string_view.hpp create mode 100644 libraries/boost/include/boost/utility/string_view_fwd.hpp create mode 100644 libraries/boost/include/boost/utility/swap.hpp create mode 100644 libraries/boost/include/boost/utility/typed_in_place_factory.hpp create mode 100644 libraries/boost/include/boost/utility/value_init.hpp create mode 100644 libraries/boost/include/boost/version.hpp delete mode 100644 modules/EosioWasmToolchainBuild.cmake.in create mode 100644 modules/eosio.cdt-config.cmake.in diff --git a/CMakeLists.txt b/CMakeLists.txt index 2dbd3b17d3..c2b8d358e5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,13 +20,10 @@ add_subdirectory(external) set(WASM_SDK_BUILD true) -configure_file(${CMAKE_SOURCE_DIR}/modules/EosioWasmToolchainBuild.cmake.in ${CMAKE_BINARY_DIR}/lib/cmake/EosioWasmToolchain.cmake @ONLY) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_BINARY_DIR}/lib/cmake") +list(APPEND CMAKE_MODULE_PATH "${CMAKE_BINARY_DIR}/lib/cmake/eosio.cdt") include(EosioWasmToolchain) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/modules") - if ("${CORE_SYMBOL_NAME}" STREQUAL "") set( CORE_SYMBOL_NAME "SYS" ) endif() @@ -47,8 +44,18 @@ message( STATUS "Using '${CORE_SYMBOL_NAME}' as CORE symbol name" ) # install examples #install(DIRECTORY examples DESTINATION "${CMAKE_INSTALL_PREFIX}") +### Configure the EosioWasmToolchain.cmakes +set(SYSROOT_DIR ${CMAKE_BINARY_DIR}) +configure_file(${CMAKE_SOURCE_DIR}/modules/EosioWasmToolchain.cmake.in ${CMAKE_BINARY_DIR}/lib/cmake/eosio.cdt/EosioWasmToolchain.cmake @ONLY) + +set(SYSROOT_DIR ${CMAKE_INSTALL_PREFIX}) configure_file(${CMAKE_SOURCE_DIR}/modules/EosioWasmToolchain.cmake.in ${CMAKE_BINARY_DIR}/modules/EosioWasmToolchain.cmake @ONLY) -install(FILES ${CMAKE_BINARY_DIR}/modules/EosioWasmToolchain.cmake DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/cmake) + +install(FILES ${CMAKE_BINARY_DIR}/modules/EosioWasmToolchain.cmake DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/cmake/eosio.cdt) + +configure_file(${CMAKE_SOURCE_DIR}/modules/eosio.cdt-config.cmake.in ${CMAKE_BINARY_DIR}/lib/cmake/eosio.cdt/eosio.cdt-config.cmake @ONLY) +install(FILES ${CMAKE_BINARY_DIR}/lib/cmake/eosio.cdt/eosio.cdt-config.cmake DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/cmake/eosio.cdt) + configure_file(${CMAKE_SOURCE_DIR}/eosio.imports.in ${CMAKE_BINARY_DIR}/eosio.imports COPYONLY) install(FILES ${CMAKE_BINARY_DIR}/eosio.imports DESTINATION ${CMAKE_INSTALL_PREFIX}) diff --git a/InstallClang.txt b/InstallClang.txt index 2be0e61ed2..e0c330e9ac 100644 --- a/InstallClang.txt +++ b/InstallClang.txt @@ -1,5 +1,19 @@ # install clang and llvm set(CLANG_BIN_DIR ${CMAKE_BINARY_DIR}/EosioClang-prefix/src/EosioClang-build/bin) + +add_custom_command( TARGET EosioClang POST_BUILD COMMAND mkdir -p ${CMAKE_BINARY_DIR}/bin ) + +add_custom_command( TARGET EosioClang POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CLANG_BIN_DIR}/eosio-cpp ${CMAKE_BINARY_DIR}/bin/ ) +add_custom_command( TARGET EosioClang POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CLANG_BIN_DIR}/eosio-cc ${CMAKE_BINARY_DIR}/bin/ ) +add_custom_command( TARGET EosioClang POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CLANG_BIN_DIR}/eosio-abigen ${CMAKE_BINARY_DIR}/bin/ ) +add_custom_command( TARGET EosioClang POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CLANG_BIN_DIR}/eosio-ld ${CMAKE_BINARY_DIR}/bin/ ) +add_custom_command( TARGET EosioClang POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CLANG_BIN_DIR}/wasm-ld ${CMAKE_BINARY_DIR}/bin/ ) +add_custom_command( TARGET EosioClang POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CLANG_BIN_DIR}/llvm-ar ${CMAKE_BINARY_DIR}/bin/ ) +add_custom_command( TARGET EosioClang POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CLANG_BIN_DIR}/llvm-ranlib ${CMAKE_BINARY_DIR}/bin/ ) +add_custom_command( TARGET EosioClang POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CLANG_BIN_DIR}/llvm-nm ${CMAKE_BINARY_DIR}/bin/ ) +add_custom_command( TARGET EosioClang POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CLANG_BIN_DIR}/clang-7 ${CMAKE_BINARY_DIR}/bin/ ) +add_custom_command( TARGET EosioClang POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CLANG_BIN_DIR}/../lib/LLVMEosioApply${CMAKE_SHARED_LIBRARY_SUFFIX} ${CMAKE_BINARY_DIR}/bin/ ) + install(FILES ${CLANG_BIN_DIR}/llvm-ranlib DESTINATION ${CMAKE_INSTALL_FULL_BINDIR} PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) @@ -53,6 +67,7 @@ install(FILES ${CLANG_BIN_DIR}/eosio-abigen PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) install(FILES ${CLANG_BIN_DIR}/../lib/LLVMEosioApply${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION ${CMAKE_INSTALL_FULL_BINDIR}) + install(CODE " execute_process(COMMAND ln -sf ${CMAKE_INSTALL_FULL_BINDIR}/clang-7 diff --git a/eosio_llvm b/eosio_llvm index 96146c9295..daee526daf 160000 --- a/eosio_llvm +++ b/eosio_llvm @@ -1 +1 @@ -Subproject commit 96146c9295b017360b07ef80019ce1d8fb1c4d9c +Subproject commit daee526daf0dfebff52f761a74c93ed126176834 diff --git a/external/wabt/CMakeLists.txt b/external/wabt/CMakeLists.txt index 6869d27458..01793a53c2 100644 --- a/external/wabt/CMakeLists.txt +++ b/external/wabt/CMakeLists.txt @@ -295,6 +295,9 @@ if (NOT EMSCRIPTEN) ) endfunction() wabt_executable(eosio-pp src/tools/postpass.cc) + add_custom_command( TARGET eosio-pp POST_BUILD COMMAND mkdir -p ${CMAKE_BINARY_DIR}/bin ) + add_custom_command( TARGET eosio-pp POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $ ${CMAKE_BINARY_DIR}/bin/ ) + # wat2wasm wabt_executable(wat2wasm src/tools/wat2wasm.cc) diff --git a/install.sh b/install.sh index 30db51d065..0b18b95466 100755 --- a/install.sh +++ b/install.sh @@ -67,7 +67,13 @@ create_symlink "wasm2wat eosio-wasm2wast" create_symlink "wat2wasm eosio-wast2wasm" } - + + create_cmake_symlink() { + mkdir -p /usr/local/lib/cmake/eosio.cdt + pushd /usr/local/lib/cmake/eosio.cdt &> /dev/null + ln -sf ../../../eosio.cdt/lib/cmake/eosio.cdt/$1 $1 + popd &> /dev/null + } if [ ! -d "${BUILD_DIR}" ]; then printf "\\n\\tError, build.sh has not ran. Please run ./build.sh first!\\n\\n" exit -1 @@ -87,6 +93,7 @@ popd &> /dev/null install_symlinks + create_cmake_symlink "eosio.cdt-config.cmake" printf "\n${bldred}\t ___ ___ ___ ___\n" printf "\t / /\\ / /\\ / /\\ ___ / /\\ \n" diff --git a/libraries/boost/CMakeLists.txt b/libraries/boost/CMakeLists.txt index c569761ab3..86aad11bbc 100644 --- a/libraries/boost/CMakeLists.txt +++ b/libraries/boost/CMakeLists.txt @@ -1 +1,2 @@ -install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}/../) +file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/include/boost DESTINATION ${CMAKE_BINARY_DIR}/include) +install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/boost DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}/) diff --git a/libraries/boost/include/boost/assert.hpp b/libraries/boost/include/boost/assert.hpp new file mode 100644 index 0000000000..9650d7a290 --- /dev/null +++ b/libraries/boost/include/boost/assert.hpp @@ -0,0 +1,85 @@ +// +// boost/assert.hpp - BOOST_ASSERT(expr) +// BOOST_ASSERT_MSG(expr, msg) +// BOOST_VERIFY(expr) +// BOOST_VERIFY_MSG(expr, msg) +// BOOST_ASSERT_IS_VOID +// +// Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd. +// Copyright (c) 2007, 2014 Peter Dimov +// Copyright (c) Beman Dawes 2011 +// Copyright (c) 2015 Ion Gaztanaga +// +// 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 +// +// Note: There are no include guards. This is intentional. +// +// See http://www.boost.org/libs/assert/assert.html for documentation. +// + +// +// Stop inspect complaining about use of 'assert': +// +// boostinspect:naassert_macro +// + +// +// BOOST_ASSERT, BOOST_ASSERT_MSG, BOOST_ASSERT_IS_VOID +// + +#undef BOOST_ASSERT +#undef BOOST_ASSERT_MSG +#undef BOOST_ASSERT_IS_VOID + +#if defined(BOOST_DISABLE_ASSERTS) || ( defined(BOOST_ENABLE_ASSERT_DEBUG_HANDLER) && defined(NDEBUG) ) + +# define BOOST_ASSERT(expr) ((void)0) +# define BOOST_ASSERT_MSG(expr, msg) ((void)0) +# define BOOST_ASSERT_IS_VOID + +#elif defined(BOOST_ENABLE_ASSERT_HANDLER) || ( defined(BOOST_ENABLE_ASSERT_DEBUG_HANDLER) && !defined(NDEBUG) ) + +#include // for BOOST_LIKELY +#include + +namespace boost +{ + void assertion_failed(char const * expr, char const * function, char const * file, long line); // user defined + void assertion_failed_msg(char const * expr, char const * msg, char const * function, char const * file, long line); // user defined +} // namespace boost + +#define BOOST_ASSERT(expr) (BOOST_LIKELY(!!(expr))? ((void)0): ::boost::assertion_failed(#expr, BOOST_CURRENT_FUNCTION, __FILE__, __LINE__)) +#define BOOST_ASSERT_MSG(expr, msg) (BOOST_LIKELY(!!(expr))? ((void)0): ::boost::assertion_failed_msg(#expr, msg, BOOST_CURRENT_FUNCTION, __FILE__, __LINE__)) + +#else + +# include // .h to support old libraries w/o - effect is the same + +# define BOOST_ASSERT(expr) assert(expr) +# define BOOST_ASSERT_MSG(expr, msg) assert((expr)&&(msg)) +#if defined(NDEBUG) +# define BOOST_ASSERT_IS_VOID +#endif + +#endif + +// +// BOOST_VERIFY, BOOST_VERIFY_MSG +// + +#undef BOOST_VERIFY +#undef BOOST_VERIFY_MSG + +#if defined(BOOST_DISABLE_ASSERTS) || ( !defined(BOOST_ENABLE_ASSERT_HANDLER) && defined(NDEBUG) ) + +# define BOOST_VERIFY(expr) ((void)(expr)) +# define BOOST_VERIFY_MSG(expr, msg) ((void)(expr)) + +#else + +# define BOOST_VERIFY(expr) BOOST_ASSERT(expr) +# define BOOST_VERIFY_MSG(expr, msg) BOOST_ASSERT_MSG(expr,msg) + +#endif diff --git a/libraries/boost/include/boost/config.hpp b/libraries/boost/include/boost/config.hpp new file mode 100644 index 0000000000..f00a980579 --- /dev/null +++ b/libraries/boost/include/boost/config.hpp @@ -0,0 +1,67 @@ +// Boost config.hpp configuration header file ------------------------------// + +// (C) Copyright John Maddock 2002. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org/libs/config for most recent version. + +// Boost config.hpp policy and rationale documentation has been moved to +// http://www.boost.org/libs/config +// +// CAUTION: This file is intended to be completely stable - +// DO NOT MODIFY THIS FILE! +// + +#ifndef BOOST_CONFIG_HPP +#define BOOST_CONFIG_HPP + +// if we don't have a user config, then use the default location: +#if !defined(BOOST_USER_CONFIG) && !defined(BOOST_NO_USER_CONFIG) +# define BOOST_USER_CONFIG +#if 0 +// For dependency trackers: +# include +#endif +#endif +// include it first: +#ifdef BOOST_USER_CONFIG +# include BOOST_USER_CONFIG +#endif + +// if we don't have a compiler config set, try and find one: +#if !defined(BOOST_COMPILER_CONFIG) && !defined(BOOST_NO_COMPILER_CONFIG) && !defined(BOOST_NO_CONFIG) +# include +#endif +// if we have a compiler config, include it now: +#ifdef BOOST_COMPILER_CONFIG +# include BOOST_COMPILER_CONFIG +#endif + +// if we don't have a std library config set, try and find one: +#if !defined(BOOST_STDLIB_CONFIG) && !defined(BOOST_NO_STDLIB_CONFIG) && !defined(BOOST_NO_CONFIG) && defined(__cplusplus) +# include +#endif +// if we have a std library config, include it now: +#ifdef BOOST_STDLIB_CONFIG +# include BOOST_STDLIB_CONFIG +#endif + +// if we don't have a platform config set, try and find one: +#if !defined(BOOST_PLATFORM_CONFIG) && !defined(BOOST_NO_PLATFORM_CONFIG) && !defined(BOOST_NO_CONFIG) +# include +#endif +// if we have a platform config, include it now: +#ifdef BOOST_PLATFORM_CONFIG +# include BOOST_PLATFORM_CONFIG +#endif + +// get config suffix code: +#include + +#ifdef BOOST_HAS_PRAGMA_ONCE +#pragma once +#endif + +#endif // BOOST_CONFIG_HPP diff --git a/libraries/boost/include/boost/config/abi/borland_prefix.hpp b/libraries/boost/include/boost/config/abi/borland_prefix.hpp new file mode 100644 index 0000000000..3a0e5ae2d7 --- /dev/null +++ b/libraries/boost/include/boost/config/abi/borland_prefix.hpp @@ -0,0 +1,27 @@ +// (C) Copyright John Maddock 2003. +// Use, modification and distribution are subject to 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) + +// for C++ Builder the following options effect the ABI: +// +// -b (on or off - effect emum sizes) +// -Vx (on or off - empty members) +// -Ve (on or off - empty base classes) +// -aX (alignment - 5 options). +// -pX (Calling convention - 4 options) +// -VmX (member pointer size and layout - 5 options) +// -VC (on or off, changes name mangling) +// -Vl (on or off, changes struct layout). + +// In addition the following warnings are sufficiently annoying (and +// unfixable) to have them turned off by default: +// +// 8027 - functions containing [for|while] loops are not expanded inline +// 8026 - functions taking class by value arguments are not expanded inline + +#pragma nopushoptwarn +# pragma option push -a8 -Vx- -Ve- -b- -pc -Vmv -VC- -Vl- -w-8027 -w-8026 + + + diff --git a/libraries/boost/include/boost/config/abi/borland_suffix.hpp b/libraries/boost/include/boost/config/abi/borland_suffix.hpp new file mode 100644 index 0000000000..940535f381 --- /dev/null +++ b/libraries/boost/include/boost/config/abi/borland_suffix.hpp @@ -0,0 +1,12 @@ +// (C) Copyright John Maddock 2003. +// Use, modification and distribution are subject to 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) + +# pragma option pop +#pragma nopushoptwarn + + + + + diff --git a/libraries/boost/include/boost/config/abi/msvc_prefix.hpp b/libraries/boost/include/boost/config/abi/msvc_prefix.hpp new file mode 100644 index 0000000000..97f06cdc0c --- /dev/null +++ b/libraries/boost/include/boost/config/abi/msvc_prefix.hpp @@ -0,0 +1,22 @@ +// (C) Copyright John Maddock 2003. +// Use, modification and distribution are subject to 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) + +// +// Boost binaries are built with the compiler's default ABI settings, +// if the user changes their default alignment in the VS IDE then their +// code will no longer be binary compatible with the bjam built binaries +// unless this header is included to force Boost code into a consistent ABI. +// +// Note that inclusion of this header is only necessary for libraries with +// separate source, header only libraries DO NOT need this as long as all +// translation units are built with the same options. +// +#if defined(_M_X64) +# pragma pack(push,16) +#else +# pragma pack(push,8) +#endif + + diff --git a/libraries/boost/include/boost/config/abi/msvc_suffix.hpp b/libraries/boost/include/boost/config/abi/msvc_suffix.hpp new file mode 100644 index 0000000000..a64d783eb0 --- /dev/null +++ b/libraries/boost/include/boost/config/abi/msvc_suffix.hpp @@ -0,0 +1,8 @@ +// (C) Copyright John Maddock 2003. +// Use, modification and distribution are subject to 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) + +#pragma pack(pop) + + diff --git a/libraries/boost/include/boost/config/abi_prefix.hpp b/libraries/boost/include/boost/config/abi_prefix.hpp new file mode 100644 index 0000000000..3b1347492c --- /dev/null +++ b/libraries/boost/include/boost/config/abi_prefix.hpp @@ -0,0 +1,25 @@ +// abi_prefix header -------------------------------------------------------// + +// (c) Copyright John Maddock 2003 + +// Use, modification and distribution are subject to 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). + +#ifndef BOOST_CONFIG_ABI_PREFIX_HPP +# define BOOST_CONFIG_ABI_PREFIX_HPP +#else +# error double inclusion of header boost/config/abi_prefix.hpp is an error +#endif + +#include + +// this must occur after all other includes and before any code appears: +#ifdef BOOST_HAS_ABI_HEADERS +# include BOOST_ABI_PREFIX +#endif + +#if defined( __BORLANDC__ ) +#pragma nopushoptwarn +#endif + diff --git a/libraries/boost/include/boost/config/abi_suffix.hpp b/libraries/boost/include/boost/config/abi_suffix.hpp new file mode 100644 index 0000000000..939161662a --- /dev/null +++ b/libraries/boost/include/boost/config/abi_suffix.hpp @@ -0,0 +1,27 @@ +// abi_sufffix header -------------------------------------------------------// + +// (c) Copyright John Maddock 2003 + +// Use, modification and distribution are subject to 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). + +// This header should be #included AFTER code that was preceded by a #include +// . + +#ifndef BOOST_CONFIG_ABI_PREFIX_HPP +# error Header boost/config/abi_suffix.hpp must only be used after boost/config/abi_prefix.hpp +#else +# undef BOOST_CONFIG_ABI_PREFIX_HPP +#endif + +// the suffix header occurs after all of our code: +#ifdef BOOST_HAS_ABI_HEADERS +# include BOOST_ABI_SUFFIX +#endif + +#if defined( __BORLANDC__ ) +#pragma nopushoptwarn +#endif + + diff --git a/libraries/boost/include/boost/config/auto_link.hpp b/libraries/boost/include/boost/config/auto_link.hpp new file mode 100644 index 0000000000..271f837911 --- /dev/null +++ b/libraries/boost/include/boost/config/auto_link.hpp @@ -0,0 +1,466 @@ +// (C) Copyright John Maddock 2003. +// Use, modification and distribution are subject to 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) + + /* + * LOCATION: see http://www.boost.org for most recent version. + * FILE auto_link.hpp + * VERSION see + * DESCRIPTION: Automatic library inclusion for Borland/Microsoft compilers. + */ + +/************************************************************************* + +USAGE: +~~~~~~ + +Before including this header you must define one or more of define the following macros: + +BOOST_LIB_NAME: Required: A string containing the basename of the library, + for example boost_regex. +BOOST_LIB_TOOLSET: Optional: the base name of the toolset. +BOOST_DYN_LINK: Optional: when set link to dll rather than static library. +BOOST_LIB_DIAGNOSTIC: Optional: when set the header will print out the name + of the library selected (useful for debugging). +BOOST_AUTO_LINK_NOMANGLE: Specifies that we should link to BOOST_LIB_NAME.lib, + rather than a mangled-name version. +BOOST_AUTO_LINK_TAGGED: Specifies that we link to libraries built with the --layout=tagged option. + This is essentially the same as the default name-mangled version, but without + the compiler name and version, or the Boost version. Just the build options. + +These macros will be undef'ed at the end of the header, further this header +has no include guards - so be sure to include it only once from your library! + +Algorithm: +~~~~~~~~~~ + +Libraries for Borland and Microsoft compilers are automatically +selected here, the name of the lib is selected according to the following +formula: + +BOOST_LIB_PREFIX + + BOOST_LIB_NAME + + "_" + + BOOST_LIB_TOOLSET + + BOOST_LIB_THREAD_OPT + + BOOST_LIB_RT_OPT + + BOOST_LIB_ARCH_AND_MODEL_OPT + "-" + + BOOST_LIB_VERSION + +These are defined as: + +BOOST_LIB_PREFIX: "lib" for static libraries otherwise "". + +BOOST_LIB_NAME: The base name of the lib ( for example boost_regex). + +BOOST_LIB_TOOLSET: The compiler toolset name (vc6, vc7, bcb5 etc). + +BOOST_LIB_THREAD_OPT: "-mt" for multithread builds, otherwise nothing. + +BOOST_LIB_RT_OPT: A suffix that indicates the runtime library used, + contains one or more of the following letters after + a hyphen: + + s static runtime (dynamic if not present). + g debug/diagnostic runtime (release if not present). + y Python debug/diagnostic runtime (release if not present). + d debug build (release if not present). + p STLport build. + n STLport build without its IOStreams. + +BOOST_LIB_ARCH_AND_MODEL_OPT: The architecture and address model + (-x32 or -x64 for x86/32 and x86/64 respectively) + +BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y. + + +***************************************************************************/ + +#ifdef __cplusplus +# ifndef BOOST_CONFIG_HPP +# include +# endif +#elif defined(_MSC_VER) && !defined(__MWERKS__) && !defined(__EDG_VERSION__) +// +// C language compatability (no, honestly) +// +# define BOOST_MSVC _MSC_VER +# define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X) +# define BOOST_DO_STRINGIZE(X) #X +#endif +// +// Only include what follows for known and supported compilers: +// +#if defined(BOOST_MSVC) \ + || defined(__BORLANDC__) \ + || (defined(__MWERKS__) && defined(_WIN32) && (__MWERKS__ >= 0x3000)) \ + || (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200)) + +#ifndef BOOST_VERSION_HPP +# include +#endif + +#ifndef BOOST_LIB_NAME +# error "Macro BOOST_LIB_NAME not set (internal error)" +#endif + +// +// error check: +// +#if defined(__MSVC_RUNTIME_CHECKS) && !defined(_DEBUG) +# pragma message("Using the /RTC option without specifying a debug runtime will lead to linker errors") +# pragma message("Hint: go to the code generation options and switch to one of the debugging runtimes") +# error "Incompatible build options" +#endif +// +// select toolset if not defined already: +// +#ifndef BOOST_LIB_TOOLSET +# if defined(BOOST_MSVC) && (BOOST_MSVC < 1200) + // Note: no compilers before 1200 are supported +# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1300) + +# ifdef UNDER_CE + // eVC4: +# define BOOST_LIB_TOOLSET "evc4" +# else + // vc6: +# define BOOST_LIB_TOOLSET "vc6" +# endif + +# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1310) + + // vc7: +# define BOOST_LIB_TOOLSET "vc7" + +# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1400) + + // vc71: +# define BOOST_LIB_TOOLSET "vc71" + +# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1500) + + // vc80: +# define BOOST_LIB_TOOLSET "vc80" + +# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1600) + + // vc90: +# define BOOST_LIB_TOOLSET "vc90" + +# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1700) + + // vc10: +# define BOOST_LIB_TOOLSET "vc100" + +# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1800) + + // vc11: +# define BOOST_LIB_TOOLSET "vc110" + +# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1900) + + // vc12: +# define BOOST_LIB_TOOLSET "vc120" + +# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1910) + + // vc14: +# define BOOST_LIB_TOOLSET "vc140" + +# elif defined(BOOST_MSVC) + + // vc14.1: +# define BOOST_LIB_TOOLSET "vc141" + +# elif defined(__BORLANDC__) + + // CBuilder 6: +# define BOOST_LIB_TOOLSET "bcb" + +# elif defined(__ICL) + + // Intel C++, no version number: +# define BOOST_LIB_TOOLSET "iw" + +# elif defined(__MWERKS__) && (__MWERKS__ <= 0x31FF ) + + // Metrowerks CodeWarrior 8.x +# define BOOST_LIB_TOOLSET "cw8" + +# elif defined(__MWERKS__) && (__MWERKS__ <= 0x32FF ) + + // Metrowerks CodeWarrior 9.x +# define BOOST_LIB_TOOLSET "cw9" + +# endif +#endif // BOOST_LIB_TOOLSET + +// +// select thread opt: +// +#if defined(_MT) || defined(__MT__) +# define BOOST_LIB_THREAD_OPT "-mt" +#else +# define BOOST_LIB_THREAD_OPT +#endif + +#if defined(_MSC_VER) || defined(__MWERKS__) + +# ifdef _DLL + +# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS)) + +# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\ + && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) +# define BOOST_LIB_RT_OPT "-gydp" +# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) +# define BOOST_LIB_RT_OPT "-gdp" +# elif defined(_DEBUG)\ + && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) +# define BOOST_LIB_RT_OPT "-gydp" +# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1") +# error "Build options aren't compatible with pre-built libraries" +# elif defined(_DEBUG) +# define BOOST_LIB_RT_OPT "-gdp" +# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1") +# error "Build options aren't compatible with pre-built libraries" +# else +# define BOOST_LIB_RT_OPT "-p" +# endif + +# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) + +# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\ + && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) +# define BOOST_LIB_RT_OPT "-gydpn" +# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) +# define BOOST_LIB_RT_OPT "-gdpn" +# elif defined(_DEBUG)\ + && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) +# define BOOST_LIB_RT_OPT "-gydpn" +# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1") +# error "Build options aren't compatible with pre-built libraries" +# elif defined(_DEBUG) +# define BOOST_LIB_RT_OPT "-gdpn" +# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1") +# error "Build options aren't compatible with pre-built libraries" +# else +# define BOOST_LIB_RT_OPT "-pn" +# endif + +# else + +# if defined(_DEBUG) && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) +# define BOOST_LIB_RT_OPT "-gyd" +# elif defined(_DEBUG) +# define BOOST_LIB_RT_OPT "-gd" +# else +# define BOOST_LIB_RT_OPT +# endif + +# endif + +# else + +# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS)) + +# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\ + && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) +# define BOOST_LIB_RT_OPT "-sgydp" +# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) +# define BOOST_LIB_RT_OPT "-sgdp" +# elif defined(_DEBUG)\ + && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) +# define BOOST_LIB_RT_OPT "-sgydp" +# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1") +# error "Build options aren't compatible with pre-built libraries" +# elif defined(_DEBUG) +# define BOOST_LIB_RT_OPT "-sgdp" +# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1") +# error "Build options aren't compatible with pre-built libraries" +# else +# define BOOST_LIB_RT_OPT "-sp" +# endif + +# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) + +# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\ + && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) +# define BOOST_LIB_RT_OPT "-sgydpn" +# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) +# define BOOST_LIB_RT_OPT "-sgdpn" +# elif defined(_DEBUG)\ + && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) +# define BOOST_LIB_RT_OPT "-sgydpn" +# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1") +# error "Build options aren't compatible with pre-built libraries" +# elif defined(_DEBUG) +# define BOOST_LIB_RT_OPT "-sgdpn" +# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1") +# error "Build options aren't compatible with pre-built libraries" +# else +# define BOOST_LIB_RT_OPT "-spn" +# endif + +# else + +# if defined(_DEBUG)\ + && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) +# define BOOST_LIB_RT_OPT "-sgyd" +# elif defined(_DEBUG) +# define BOOST_LIB_RT_OPT "-sgd" +# else +# define BOOST_LIB_RT_OPT "-s" +# endif + +# endif + +# endif + +#elif defined(__BORLANDC__) + +// +// figure out whether we want the debug builds or not: +// +#if __BORLANDC__ > 0x561 +#pragma defineonoption BOOST_BORLAND_DEBUG -v +#endif +// +// sanity check: +// +#if defined(__STL_DEBUG) || defined(_STLP_DEBUG) +#error "Pre-built versions of the Boost libraries are not provided in STLport-debug form" +#endif + +# ifdef _RTLDLL + +# if defined(BOOST_BORLAND_DEBUG)\ + && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) +# define BOOST_LIB_RT_OPT "-yd" +# elif defined(BOOST_BORLAND_DEBUG) +# define BOOST_LIB_RT_OPT "-d" +# elif defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) +# define BOOST_LIB_RT_OPT -y +# else +# define BOOST_LIB_RT_OPT +# endif + +# else + +# if defined(BOOST_BORLAND_DEBUG)\ + && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) +# define BOOST_LIB_RT_OPT "-syd" +# elif defined(BOOST_BORLAND_DEBUG) +# define BOOST_LIB_RT_OPT "-sd" +# elif defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) +# define BOOST_LIB_RT_OPT "-sy" +# else +# define BOOST_LIB_RT_OPT "-s" +# endif + +# endif + +#endif + +// +// BOOST_LIB_ARCH_AND_MODEL_OPT +// + +#if defined( _M_IX86 ) +# define BOOST_LIB_ARCH_AND_MODEL_OPT "-x32" +#elif defined( _M_X64 ) +# define BOOST_LIB_ARCH_AND_MODEL_OPT "-x64" +#elif defined( _M_ARM ) +# define BOOST_LIB_ARCH_AND_MODEL_OPT "-a32" +#elif defined( _M_ARM64 ) +# define BOOST_LIB_ARCH_AND_MODEL_OPT "-a64" +#endif + +// +// select linkage opt: +// +#if (defined(_DLL) || defined(_RTLDLL)) && defined(BOOST_DYN_LINK) +# define BOOST_LIB_PREFIX +#elif defined(BOOST_DYN_LINK) +# error "Mixing a dll boost library with a static runtime is a really bad idea..." +#else +# define BOOST_LIB_PREFIX "lib" +#endif + +// +// now include the lib: +// +#if defined(BOOST_LIB_NAME) \ + && defined(BOOST_LIB_PREFIX) \ + && defined(BOOST_LIB_TOOLSET) \ + && defined(BOOST_LIB_THREAD_OPT) \ + && defined(BOOST_LIB_RT_OPT) \ + && defined(BOOST_LIB_ARCH_AND_MODEL_OPT) \ + && defined(BOOST_LIB_VERSION) + +#ifdef BOOST_AUTO_LINK_TAGGED +# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib") +# ifdef BOOST_LIB_DIAGNOSTIC +# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib") +# endif +#elif defined(BOOST_AUTO_LINK_NOMANGLE) +# pragma comment(lib, BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib") +# ifdef BOOST_LIB_DIAGNOSTIC +# pragma message ("Linking to lib file: " BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib") +# endif +#elif defined(BOOST_LIB_BUILDID) +# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT BOOST_LIB_ARCH_AND_MODEL_OPT "-" BOOST_LIB_VERSION "-" BOOST_STRINGIZE(BOOST_LIB_BUILDID) ".lib") +# ifdef BOOST_LIB_DIAGNOSTIC +# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT BOOST_LIB_ARCH_AND_MODEL_OPT "-" BOOST_LIB_VERSION "-" BOOST_STRINGIZE(BOOST_LIB_BUILDID) ".lib") +# endif +#else +# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT BOOST_LIB_ARCH_AND_MODEL_OPT "-" BOOST_LIB_VERSION ".lib") +# ifdef BOOST_LIB_DIAGNOSTIC +# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT BOOST_LIB_ARCH_AND_MODEL_OPT "-" BOOST_LIB_VERSION ".lib") +# endif +#endif + +#else +# error "some required macros where not defined (internal logic error)." +#endif + + +#endif // _MSC_VER || __BORLANDC__ + +// +// finally undef any macros we may have set: +// +#ifdef BOOST_LIB_PREFIX +# undef BOOST_LIB_PREFIX +#endif +#if defined(BOOST_LIB_NAME) +# undef BOOST_LIB_NAME +#endif +// Don't undef this one: it can be set by the user and should be the +// same for all libraries: +//#if defined(BOOST_LIB_TOOLSET) +//# undef BOOST_LIB_TOOLSET +//#endif +#if defined(BOOST_LIB_THREAD_OPT) +# undef BOOST_LIB_THREAD_OPT +#endif +#if defined(BOOST_LIB_RT_OPT) +# undef BOOST_LIB_RT_OPT +#endif +#if defined(BOOST_LIB_ARCH_AND_MODEL_OPT) +# undef BOOST_LIB_ARCH_AND_MODEL_OPT +#endif +#if defined(BOOST_LIB_LINK_OPT) +# undef BOOST_LIB_LINK_OPT +#endif +#if defined(BOOST_LIB_DEBUG_OPT) +# undef BOOST_LIB_DEBUG_OPT +#endif +#if defined(BOOST_DYN_LINK) +# undef BOOST_DYN_LINK +#endif + + diff --git a/libraries/boost/include/boost/config/compiler/borland.hpp b/libraries/boost/include/boost/config/compiler/borland.hpp new file mode 100644 index 0000000000..6190e390e6 --- /dev/null +++ b/libraries/boost/include/boost/config/compiler/borland.hpp @@ -0,0 +1,332 @@ +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright David Abrahams 2002 - 2003. +// (C) Copyright Aleksey Gurtovoy 2002. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// Borland C++ compiler setup: + +// +// versions check: +// we don't support Borland prior to version 5.4: +#if __BORLANDC__ < 0x540 +# error "Compiler not supported or configured - please reconfigure" +#endif + +// last known compiler version: +#if (__BORLANDC__ > 0x613) +//# if defined(BOOST_ASSERT_CONFIG) +# error "Unknown compiler version - please run the configure tests and report the results" +//# else +//# pragma message( "Unknown compiler version - please run the configure tests and report the results") +//# endif +#elif (__BORLANDC__ == 0x600) +# error "CBuilderX preview compiler is no longer supported" +#endif + +// +// Support macros to help with standard library detection +#if (__BORLANDC__ < 0x560) || defined(_USE_OLD_RW_STL) +# define BOOST_BCB_WITH_ROGUE_WAVE +#elif __BORLANDC__ < 0x570 +# define BOOST_BCB_WITH_STLPORT +#else +# define BOOST_BCB_WITH_DINKUMWARE +#endif + +// +// Version 5.0 and below: +# if __BORLANDC__ <= 0x0550 +// Borland C++Builder 4 and 5: +# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS +# if __BORLANDC__ == 0x0550 +// Borland C++Builder 5, command-line compiler 5.5: +# define BOOST_NO_OPERATORS_IN_NAMESPACE +# endif +// Variadic macros do not exist for C++ Builder versions 5 and below +#define BOOST_NO_CXX11_VARIADIC_MACROS +# endif + +// Version 5.51 and below: +#if (__BORLANDC__ <= 0x551) +# define BOOST_NO_CV_SPECIALIZATIONS +# define BOOST_NO_CV_VOID_SPECIALIZATIONS +# define BOOST_NO_DEDUCED_TYPENAME +// workaround for missing WCHAR_MAX/WCHAR_MIN: +#ifdef __cplusplus +#include +#include +#else +#include +#include +#endif // __cplusplus +#ifndef WCHAR_MAX +# define WCHAR_MAX 0xffff +#endif +#ifndef WCHAR_MIN +# define WCHAR_MIN 0 +#endif +#endif + +// Borland C++ Builder 6 and below: +#if (__BORLANDC__ <= 0x564) + +# if defined(NDEBUG) && defined(__cplusplus) + // fix broken so that Boost.test works: +# include +# undef strcmp +# endif + // fix broken errno declaration: +# include +# ifndef errno +# define errno errno +# endif + +#endif + +// +// new bug in 5.61: +#if (__BORLANDC__ >= 0x561) && (__BORLANDC__ <= 0x580) + // this seems to be needed by the command line compiler, but not the IDE: +# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS +#endif + +// Borland C++ Builder 2006 Update 2 and below: +#if (__BORLANDC__ <= 0x582) +# define BOOST_NO_SFINAE +# define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG +# define BOOST_NO_TEMPLATE_TEMPLATES + +# define BOOST_NO_PRIVATE_IN_AGGREGATE + +# ifdef _WIN32 +# define BOOST_NO_SWPRINTF +# elif defined(linux) || defined(__linux__) || defined(__linux) + // we should really be able to do without this + // but the wcs* functions aren't imported into std:: +# define BOOST_NO_STDC_NAMESPACE + // _CPPUNWIND doesn't get automatically set for some reason: +# pragma defineonoption BOOST_CPPUNWIND -x +# endif +#endif + +#if (__BORLANDC__ <= 0x613) // Beman has asked Alisdair for more info + // we shouldn't really need this - but too many things choke + // without it, this needs more investigation: +# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS +# define BOOST_NO_IS_ABSTRACT +# define BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS +# define BOOST_NO_USING_TEMPLATE +# define BOOST_SP_NO_SP_CONVERTIBLE + +// Temporary workaround +#define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS +#endif + +// Borland C++ Builder 2008 and below: +# define BOOST_NO_INTEGRAL_INT64_T +# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL +# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS +# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS +# define BOOST_NO_TWO_PHASE_NAME_LOOKUP +# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE +# define BOOST_NO_NESTED_FRIENDSHIP +# define BOOST_NO_TYPENAME_WITH_CTOR +#if (__BORLANDC__ < 0x600) +# define BOOST_ILLEGAL_CV_REFERENCES +#endif + +// +// Positive Feature detection +// +// Borland C++ Builder 2008 and below: +#if (__BORLANDC__ >= 0x599) +# pragma defineonoption BOOST_CODEGEAR_0X_SUPPORT -Ax +#endif +// +// C++0x Macros: +// +#if !defined( BOOST_CODEGEAR_0X_SUPPORT ) || (__BORLANDC__ < 0x610) +# define BOOST_NO_CXX11_CHAR16_T +# define BOOST_NO_CXX11_CHAR32_T +# define BOOST_NO_CXX11_DECLTYPE +# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +# define BOOST_NO_CXX11_EXTERN_TEMPLATE +# define BOOST_NO_CXX11_RVALUE_REFERENCES +# define BOOST_NO_CXX11_SCOPED_ENUMS +# define BOOST_NO_CXX11_STATIC_ASSERT +#else +# define BOOST_HAS_ALIGNOF +# define BOOST_HAS_CHAR16_T +# define BOOST_HAS_CHAR32_T +# define BOOST_HAS_DECLTYPE +# define BOOST_HAS_EXPLICIT_CONVERSION_OPS +# define BOOST_HAS_REF_QUALIFIER +# define BOOST_HAS_RVALUE_REFS +# define BOOST_HAS_STATIC_ASSERT +#endif + +#define BOOST_NO_CXX11_AUTO_DECLARATIONS +#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +#define BOOST_NO_CXX11_CONSTEXPR +#define BOOST_NO_CXX11_DECLTYPE_N3276 +#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +#define BOOST_NO_CXX11_DEFAULTED_MOVES +#define BOOST_NO_CXX11_DELETED_FUNCTIONS +#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +#define BOOST_NO_CXX11_LAMBDAS +#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +#define BOOST_NO_CXX11_NULLPTR +#define BOOST_NO_CXX11_RANGE_BASED_FOR +#define BOOST_NO_CXX11_RAW_LITERALS +#define BOOST_NO_CXX11_RVALUE_REFERENCES +#define BOOST_NO_CXX11_SCOPED_ENUMS +#define BOOST_NO_SFINAE_EXPR +#define BOOST_NO_CXX11_SFINAE_EXPR +#define BOOST_NO_CXX11_TEMPLATE_ALIASES +#define BOOST_NO_CXX11_UNICODE_LITERALS // UTF-8 still not supported +#define BOOST_NO_CXX11_VARIADIC_TEMPLATES +#define BOOST_NO_CXX11_NOEXCEPT +#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX +#define BOOST_NO_CXX11_USER_DEFINED_LITERALS +#define BOOST_NO_CXX11_ALIGNAS +#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES +#define BOOST_NO_CXX11_INLINE_NAMESPACES +#define BOOST_NO_CXX11_REF_QUALIFIERS +#define BOOST_NO_CXX11_FINAL +#define BOOST_NO_CXX11_THREAD_LOCAL + +// C++ 14: +#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) +# define BOOST_NO_CXX14_AGGREGATE_NSDMI +#endif +#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304) +# define BOOST_NO_CXX14_BINARY_LITERALS +#endif +#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304) +# define BOOST_NO_CXX14_CONSTEXPR +#endif +#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304) +# define BOOST_NO_CXX14_DECLTYPE_AUTO +#endif +#if (__cplusplus < 201304) // There's no SD6 check for this.... +# define BOOST_NO_CXX14_DIGIT_SEPARATORS +#endif +#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304) +# define BOOST_NO_CXX14_GENERIC_LAMBDAS +#endif +#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304) +# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES +#endif +#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304) +# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION +#endif +#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) +# define BOOST_NO_CXX14_VARIABLE_TEMPLATES +#endif + +// C++17 +#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606) +# define BOOST_NO_CXX17_STRUCTURED_BINDINGS +#endif +#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606) +# define BOOST_NO_CXX17_INLINE_VARIABLES +#endif +#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603) +# define BOOST_NO_CXX17_FOLD_EXPRESSIONS +#endif + +#if __BORLANDC__ >= 0x590 +# define BOOST_HAS_TR1_HASH + +# define BOOST_HAS_MACRO_USE_FACET +#endif + +// +// Post 0x561 we have long long and stdint.h: +#if __BORLANDC__ >= 0x561 +# ifndef __NO_LONG_LONG +# define BOOST_HAS_LONG_LONG +# else +# define BOOST_NO_LONG_LONG +# endif + // On non-Win32 platforms let the platform config figure this out: +# ifdef _WIN32 +# define BOOST_HAS_STDINT_H +# endif +#endif + +// Borland C++Builder 6 defaults to using STLPort. If _USE_OLD_RW_STL is +// defined, then we have 0x560 or greater with the Rogue Wave implementation +// which presumably has the std::DBL_MAX bug. +#if defined( BOOST_BCB_WITH_ROGUE_WAVE ) +// is partly broken, some macros define symbols that are really in +// namespace std, so you end up having to use illegal constructs like +// std::DBL_MAX, as a fix we'll just include float.h and have done with: +#include +#endif +// +// __int64: +// +#if (__BORLANDC__ >= 0x530) && !defined(__STRICT_ANSI__) +# define BOOST_HAS_MS_INT64 +#endif +// +// check for exception handling support: +// +#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS) +# define BOOST_NO_EXCEPTIONS +#endif +// +// all versions have a : +// +#ifndef __STRICT_ANSI__ +# define BOOST_HAS_DIRENT_H +#endif +// +// all versions support __declspec: +// +#if defined(__STRICT_ANSI__) +// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined +# define BOOST_SYMBOL_EXPORT +#endif +// +// ABI fixing headers: +// +#if __BORLANDC__ != 0x600 // not implemented for version 6 compiler yet +#ifndef BOOST_ABI_PREFIX +# define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp" +#endif +#ifndef BOOST_ABI_SUFFIX +# define BOOST_ABI_SUFFIX "boost/config/abi/borland_suffix.hpp" +#endif +#endif +// +// Disable Win32 support in ANSI mode: +// +#if __BORLANDC__ < 0x600 +# pragma defineonoption BOOST_DISABLE_WIN32 -A +#elif defined(__STRICT_ANSI__) +# define BOOST_DISABLE_WIN32 +#endif +// +// MSVC compatibility mode does some nasty things: +// TODO: look up if this doesn't apply to the whole 12xx range +// +#if defined(_MSC_VER) && (_MSC_VER <= 1200) +# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP +# define BOOST_NO_VOID_RETURNS +#endif + +// Borland did not implement value-initialization completely, as I reported +// in 2007, Borland Report 51854, "Value-initialization: POD struct should be +// zero-initialized", http://qc.embarcadero.com/wc/qcmain.aspx?d=51854 +// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues +// (Niels Dekker, LKEB, April 2010) +#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION + +#define BOOST_COMPILER "Borland C++ version " BOOST_STRINGIZE(__BORLANDC__) diff --git a/libraries/boost/include/boost/config/compiler/clang.hpp b/libraries/boost/include/boost/config/compiler/clang.hpp new file mode 100644 index 0000000000..da736bc4b4 --- /dev/null +++ b/libraries/boost/include/boost/config/compiler/clang.hpp @@ -0,0 +1,336 @@ +// (C) Copyright Douglas Gregor 2010 +// +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// Clang compiler setup. + +#define BOOST_HAS_PRAGMA_ONCE + +// Detecting `-fms-extension` compiler flag assuming that _MSC_VER defined when that flag is used. +#if defined (_MSC_VER) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4)) +# define BOOST_HAS_PRAGMA_DETECT_MISMATCH +#endif + +// When compiling with clang before __has_extension was defined, +// even if one writes 'defined(__has_extension) && __has_extension(xxx)', +// clang reports a compiler error. So the only workaround found is: + +#ifndef __has_extension +#define __has_extension __has_feature +#endif + +#ifndef __has_attribute +#define __has_attribute(x) 0 +#endif + +#ifndef __has_cpp_attribute +#define __has_cpp_attribute(x) 0 +#endif + +#if !__has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS) +# define BOOST_NO_EXCEPTIONS +#endif + +#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_RTTI) +# define BOOST_NO_RTTI +#endif + +#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_TYPEID) +# define BOOST_NO_TYPEID +#endif + +#if !__has_feature(cxx_thread_local) +# define BOOST_NO_CXX11_THREAD_LOCAL +#endif + +#ifdef __is_identifier +#if !__is_identifier(__int64) && !defined(__GNUC__) +# define BOOST_HAS_MS_INT64 +#endif +#endif + +#if __has_include() +# define BOOST_HAS_STDINT_H +#endif + + +#define BOOST_HAS_NRVO + +// Branch prediction hints +#if !defined (__c2__) && defined(__has_builtin) +#if __has_builtin(__builtin_expect) +#define BOOST_LIKELY(x) __builtin_expect(x, 1) +#define BOOST_UNLIKELY(x) __builtin_expect(x, 0) +#endif +#endif + +// Clang supports "long long" in all compilation modes. +#define BOOST_HAS_LONG_LONG + +// +// We disable this if the compiler is really nvcc with C++03 as it +// doesn't actually support __int128 as of CUDA_VERSION=7500 +// even though it defines __SIZEOF_INT128__. +// See https://svn.boost.org/trac/boost/ticket/10418 +// https://svn.boost.org/trac/boost/ticket/11852 +// Only re-enable this for nvcc if you're absolutely sure +// of the circumstances under which it's supported. +// Similarly __SIZEOF_INT128__ is defined when targetting msvc +// compatibility even though the required support functions are absent. +// +#if defined(__CUDACC__) +# if defined(BOOST_GCC_CXX11) +# define BOOST_NVCC_CXX11 +# else +# define BOOST_NVCC_CXX03 +# endif +#endif + +#if defined(__SIZEOF_INT128__) && !defined(BOOST_NVCC_CXX03) && !defined(_MSC_VER) +# define BOOST_HAS_INT128 +#endif + + +// +// Dynamic shared object (DSO) and dynamic-link library (DLL) support +// +#if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__CYGWIN__) +# define BOOST_HAS_DECLSPEC +# define BOOST_SYMBOL_EXPORT __attribute__((__dllexport__)) +# define BOOST_SYMBOL_IMPORT __attribute__((__dllimport__)) +#else +# define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default"))) +# define BOOST_SYMBOL_IMPORT +#endif +#define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default"))) + +// +// The BOOST_FALLTHROUGH macro can be used to annotate implicit fall-through +// between switch labels. +// +#if __cplusplus >= 201103L && defined(__has_warning) +# if __has_feature(cxx_attributes) && __has_warning("-Wimplicit-fallthrough") +# define BOOST_FALLTHROUGH [[clang::fallthrough]] +# endif +#endif + +#if !__has_feature(cxx_auto_type) +# define BOOST_NO_CXX11_AUTO_DECLARATIONS +# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +#endif + +// +// Currently clang on Windows using VC++ RTL does not support C++11's char16_t or char32_t +// +#if (defined(_MSC_VER) && (_MSC_VER < 1900)) || !(defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L) +# define BOOST_NO_CXX11_CHAR16_T +# define BOOST_NO_CXX11_CHAR32_T +#endif + +#if defined(_MSC_VER) && (_MSC_VER >= 1800) && !defined(__GNUC__) +#define BOOST_HAS_EXPM1 +#define BOOST_HAS_LOG1P +#endif + +#if !__has_feature(cxx_constexpr) +# define BOOST_NO_CXX11_CONSTEXPR +#endif + +#if !__has_feature(cxx_decltype) +# define BOOST_NO_CXX11_DECLTYPE +#endif + +#if !__has_feature(cxx_decltype_incomplete_return_types) +# define BOOST_NO_CXX11_DECLTYPE_N3276 +#endif + +#if !__has_feature(cxx_defaulted_functions) +# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +#endif + +#if !__has_feature(cxx_deleted_functions) +# define BOOST_NO_CXX11_DELETED_FUNCTIONS +#endif + +#if !__has_feature(cxx_explicit_conversions) +# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +#endif + +#if !__has_feature(cxx_default_function_template_args) +# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +#endif + +#if !__has_feature(cxx_generalized_initializers) +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +#endif + +#if !__has_feature(cxx_lambdas) +# define BOOST_NO_CXX11_LAMBDAS +#endif + +#if !__has_feature(cxx_local_type_template_args) +# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +#endif + +#if !__has_feature(cxx_noexcept) +# define BOOST_NO_CXX11_NOEXCEPT +#endif + +#if !__has_feature(cxx_nullptr) +# define BOOST_NO_CXX11_NULLPTR +#endif + +#if !__has_feature(cxx_range_for) +# define BOOST_NO_CXX11_RANGE_BASED_FOR +#endif + +#if !__has_feature(cxx_raw_string_literals) +# define BOOST_NO_CXX11_RAW_LITERALS +#endif + +#if !__has_feature(cxx_reference_qualified_functions) +# define BOOST_NO_CXX11_REF_QUALIFIERS +#endif + +#if !__has_feature(cxx_generalized_initializers) +# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX +#endif + +#if !__has_feature(cxx_rvalue_references) +# define BOOST_NO_CXX11_RVALUE_REFERENCES +#endif + +#if !__has_feature(cxx_strong_enums) +# define BOOST_NO_CXX11_SCOPED_ENUMS +#endif + +#if !__has_feature(cxx_static_assert) +# define BOOST_NO_CXX11_STATIC_ASSERT +#endif + +#if !__has_feature(cxx_alias_templates) +# define BOOST_NO_CXX11_TEMPLATE_ALIASES +#endif + +#if !__has_feature(cxx_unicode_literals) +# define BOOST_NO_CXX11_UNICODE_LITERALS +#endif + +#if !__has_feature(cxx_variadic_templates) +# define BOOST_NO_CXX11_VARIADIC_TEMPLATES +#endif + +#if !__has_feature(cxx_user_literals) +# define BOOST_NO_CXX11_USER_DEFINED_LITERALS +#endif + +#if !__has_feature(cxx_alignas) +# define BOOST_NO_CXX11_ALIGNAS +#endif + +#if !__has_feature(cxx_trailing_return) +# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES +#endif + +#if !__has_feature(cxx_inline_namespaces) +# define BOOST_NO_CXX11_INLINE_NAMESPACES +#endif + +#if !__has_feature(cxx_override_control) +# define BOOST_NO_CXX11_FINAL +#endif + +#if !(__has_feature(__cxx_binary_literals__) || __has_extension(__cxx_binary_literals__)) +# define BOOST_NO_CXX14_BINARY_LITERALS +#endif + +#if !__has_feature(__cxx_decltype_auto__) +# define BOOST_NO_CXX14_DECLTYPE_AUTO +#endif + +#if !__has_feature(__cxx_aggregate_nsdmi__) +# define BOOST_NO_CXX14_AGGREGATE_NSDMI +#endif + +#if !__has_feature(__cxx_init_captures__) +# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES +#endif + +#if !__has_feature(__cxx_generic_lambdas__) +# define BOOST_NO_CXX14_GENERIC_LAMBDAS +#endif + +// clang < 3.5 has a defect with dependent type, like following. +// +// template +// constexpr typename enable_if >::type foo(T &) +// { } // error: no return statement in constexpr function +// +// This issue also affects C++11 mode, but C++11 constexpr requires return stmt. +// Therefore we don't care such case. +// +// Note that we can't check Clang version directly as the numbering system changes depending who's +// creating the Clang release (see https://github.com/boostorg/config/pull/39#issuecomment-59927873) +// so instead verify that we have a feature that was introduced at the same time as working C++14 +// constexpr (generic lambda's in this case): +// +#if !__has_feature(__cxx_generic_lambdas__) || !__has_feature(__cxx_relaxed_constexpr__) +# define BOOST_NO_CXX14_CONSTEXPR +#endif + +#if !__has_feature(__cxx_return_type_deduction__) +# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION +#endif + +#if !__has_feature(__cxx_variable_templates__) +# define BOOST_NO_CXX14_VARIABLE_TEMPLATES +#endif + +#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606) +# define BOOST_NO_CXX17_STRUCTURED_BINDINGS +#endif + +// Clang 3.9+ in c++1z +#if !__has_cpp_attribute(fallthrough) || __cplusplus < 201406L +# define BOOST_NO_CXX17_INLINE_VARIABLES +# define BOOST_NO_CXX17_FOLD_EXPRESSIONS +#endif + +#if __cplusplus < 201103L +#define BOOST_NO_CXX11_SFINAE_EXPR +#endif + +#if __cplusplus < 201400 +// All versions with __cplusplus above this value seem to support this: +# define BOOST_NO_CXX14_DIGIT_SEPARATORS +#endif +// +// __builtin_unreachable: +#if defined(__has_builtin) && __has_builtin(__builtin_unreachable) +#define BOOST_UNREACHABLE_RETURN(x) __builtin_unreachable(); +#endif + +#if (__clang_major__ == 3) && (__clang_minor__ == 0) +// Apparently a clang bug: +# define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS +#endif + +// Clang has supported the 'unused' attribute since the first release. +#define BOOST_ATTRIBUTE_UNUSED __attribute__((__unused__)) + +// Type aliasing hint. +#if __has_attribute(__may_alias__) +# define BOOST_MAY_ALIAS __attribute__((__may_alias__)) +#endif + +#ifndef BOOST_COMPILER +# define BOOST_COMPILER "Clang version " __clang_version__ +#endif + +// Macro used to identify the Clang compiler. +#define BOOST_CLANG 1 + diff --git a/libraries/boost/include/boost/config/compiler/codegear.hpp b/libraries/boost/include/boost/config/compiler/codegear.hpp new file mode 100644 index 0000000000..44ca8428e4 --- /dev/null +++ b/libraries/boost/include/boost/config/compiler/codegear.hpp @@ -0,0 +1,235 @@ +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright David Abrahams 2002 - 2003. +// (C) Copyright Aleksey Gurtovoy 2002. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// CodeGear C++ compiler setup: + +#if !defined( BOOST_WITH_CODEGEAR_WARNINGS ) +// these warnings occur frequently in optimized template code +# pragma warn -8004 // var assigned value, but never used +# pragma warn -8008 // condition always true/false +# pragma warn -8066 // dead code can never execute +# pragma warn -8104 // static members with ctors not threadsafe +# pragma warn -8105 // reference member in class without ctors +#endif +// +// versions check: +// last known and checked version is 0x621 +#if (__CODEGEARC__ > 0x621) +# if defined(BOOST_ASSERT_CONFIG) +# error "Unknown compiler version - please run the configure tests and report the results" +# else +# pragma message( "Unknown compiler version - please run the configure tests and report the results") +# endif +#endif + +// CodeGear C++ Builder 2009 +#if (__CODEGEARC__ <= 0x613) +# define BOOST_NO_INTEGRAL_INT64_T +# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS +# define BOOST_NO_PRIVATE_IN_AGGREGATE +# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE + // we shouldn't really need this - but too many things choke + // without it, this needs more investigation: +# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS +# define BOOST_SP_NO_SP_CONVERTIBLE +#endif + +// CodeGear C++ Builder 2010 +#if (__CODEGEARC__ <= 0x621) +# define BOOST_NO_TYPENAME_WITH_CTOR // Cannot use typename keyword when making temporaries of a dependant type +# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL +# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS +# define BOOST_NO_NESTED_FRIENDSHIP // TC1 gives nested classes access rights as any other member +# define BOOST_NO_USING_TEMPLATE +# define BOOST_NO_TWO_PHASE_NAME_LOOKUP +// Temporary hack, until specific MPL preprocessed headers are generated +# define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS + +// CodeGear has not yet completely implemented value-initialization, for +// example for array types, as I reported in 2010: Embarcadero Report 83751, +// "Value-initialization: arrays should have each element value-initialized", +// http://qc.embarcadero.com/wc/qcmain.aspx?d=83751 +// Last checked version: Embarcadero C++ 6.21 +// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues +// (Niels Dekker, LKEB, April 2010) +# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION + +# if defined(NDEBUG) && defined(__cplusplus) + // fix broken so that Boost.test works: +# include +# undef strcmp +# endif + // fix broken errno declaration: +# include +# ifndef errno +# define errno errno +# endif + +#endif + +// Reportedly, #pragma once is supported since C++ Builder 2010 +#if (__CODEGEARC__ >= 0x620) +# define BOOST_HAS_PRAGMA_ONCE +#endif + +// +// C++0x macros: +// +#if (__CODEGEARC__ <= 0x620) +#define BOOST_NO_CXX11_STATIC_ASSERT +#else +#define BOOST_HAS_STATIC_ASSERT +#endif +#define BOOST_HAS_CHAR16_T +#define BOOST_HAS_CHAR32_T +#define BOOST_HAS_LONG_LONG +// #define BOOST_HAS_ALIGNOF +#define BOOST_HAS_DECLTYPE +#define BOOST_HAS_EXPLICIT_CONVERSION_OPS +// #define BOOST_HAS_RVALUE_REFS +#define BOOST_HAS_SCOPED_ENUM +// #define BOOST_HAS_STATIC_ASSERT +#define BOOST_HAS_STD_TYPE_TRAITS + +#define BOOST_NO_CXX11_AUTO_DECLARATIONS +#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +#define BOOST_NO_CXX11_CONSTEXPR +#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +#define BOOST_NO_CXX11_DELETED_FUNCTIONS +#define BOOST_NO_CXX11_EXTERN_TEMPLATE +#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +#define BOOST_NO_CXX11_LAMBDAS +#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +#define BOOST_NO_CXX11_NOEXCEPT +#define BOOST_NO_CXX11_NULLPTR +#define BOOST_NO_CXX11_RANGE_BASED_FOR +#define BOOST_NO_CXX11_RAW_LITERALS +#define BOOST_NO_CXX11_RVALUE_REFERENCES +#define BOOST_NO_SFINAE_EXPR +#define BOOST_NO_CXX11_SFINAE_EXPR +#define BOOST_NO_CXX11_TEMPLATE_ALIASES +#define BOOST_NO_CXX11_UNICODE_LITERALS +#define BOOST_NO_CXX11_VARIADIC_TEMPLATES +#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX +#define BOOST_NO_CXX11_USER_DEFINED_LITERALS +#define BOOST_NO_CXX11_ALIGNAS +#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES +#define BOOST_NO_CXX11_INLINE_NAMESPACES +#define BOOST_NO_CXX11_REF_QUALIFIERS +#define BOOST_NO_CXX11_FINAL +#define BOOST_NO_CXX11_THREAD_LOCAL + +// C++ 14: +#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) +# define BOOST_NO_CXX14_AGGREGATE_NSDMI +#endif +#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304) +# define BOOST_NO_CXX14_BINARY_LITERALS +#endif +#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304) +# define BOOST_NO_CXX14_CONSTEXPR +#endif +#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304) +# define BOOST_NO_CXX14_DECLTYPE_AUTO +#endif +#if (__cplusplus < 201304) // There's no SD6 check for this.... +# define BOOST_NO_CXX14_DIGIT_SEPARATORS +#endif +#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304) +# define BOOST_NO_CXX14_GENERIC_LAMBDAS +#endif +#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304) +# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES +#endif +#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304) +# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION +#endif +#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) +# define BOOST_NO_CXX14_VARIABLE_TEMPLATES +#endif + +// C++17 +#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606) +# define BOOST_NO_CXX17_STRUCTURED_BINDINGS +#endif + +#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606) +# define BOOST_NO_CXX17_INLINE_VARIABLES +#endif + +#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603) +# define BOOST_NO_CXX17_FOLD_EXPRESSIONS +#endif + +// +// TR1 macros: +// +#define BOOST_HAS_TR1_HASH +#define BOOST_HAS_TR1_TYPE_TRAITS +#define BOOST_HAS_TR1_UNORDERED_MAP +#define BOOST_HAS_TR1_UNORDERED_SET + +#define BOOST_HAS_MACRO_USE_FACET + +#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST + +// On non-Win32 platforms let the platform config figure this out: +#ifdef _WIN32 +# define BOOST_HAS_STDINT_H +#endif + +// +// __int64: +// +#if !defined(__STRICT_ANSI__) +# define BOOST_HAS_MS_INT64 +#endif +// +// check for exception handling support: +// +#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS) +# define BOOST_NO_EXCEPTIONS +#endif +// +// all versions have a : +// +#if !defined(__STRICT_ANSI__) +# define BOOST_HAS_DIRENT_H +#endif +// +// all versions support __declspec: +// +#if defined(__STRICT_ANSI__) +// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined +# define BOOST_SYMBOL_EXPORT +#endif +// +// ABI fixing headers: +// +#ifndef BOOST_ABI_PREFIX +# define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp" +#endif +#ifndef BOOST_ABI_SUFFIX +# define BOOST_ABI_SUFFIX "boost/config/abi/borland_suffix.hpp" +#endif +// +// Disable Win32 support in ANSI mode: +// +# pragma defineonoption BOOST_DISABLE_WIN32 -A +// +// MSVC compatibility mode does some nasty things: +// TODO: look up if this doesn't apply to the whole 12xx range +// +#if defined(_MSC_VER) && (_MSC_VER <= 1200) +# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP +# define BOOST_NO_VOID_RETURNS +#endif + +#define BOOST_COMPILER "CodeGear C++ version " BOOST_STRINGIZE(__CODEGEARC__) + diff --git a/libraries/boost/include/boost/config/compiler/comeau.hpp b/libraries/boost/include/boost/config/compiler/comeau.hpp new file mode 100644 index 0000000000..09841604f9 --- /dev/null +++ b/libraries/boost/include/boost/config/compiler/comeau.hpp @@ -0,0 +1,59 @@ +// (C) Copyright John Maddock 2001. +// (C) Copyright Douglas Gregor 2001. +// (C) Copyright Peter Dimov 2001. +// (C) Copyright Aleksey Gurtovoy 2003. +// (C) Copyright Beman Dawes 2003. +// (C) Copyright Jens Maurer 2003. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// Comeau C++ compiler setup: + +#include + +#if (__COMO_VERSION__ <= 4245) + +# if defined(_MSC_VER) && _MSC_VER <= 1300 +# if _MSC_VER > 100 + // only set this in non-strict mode: +# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP +# endif +# endif + +// Void returns don't work when emulating VC 6 (Peter Dimov) +// TODO: look up if this doesn't apply to the whole 12xx range +# if defined(_MSC_VER) && (_MSC_VER < 1300) +# define BOOST_NO_VOID_RETURNS +# endif + +#endif // version 4245 + +// +// enable __int64 support in VC emulation mode +// +# if defined(_MSC_VER) && (_MSC_VER >= 1200) +# define BOOST_HAS_MS_INT64 +# endif + +#define BOOST_COMPILER "Comeau compiler version " BOOST_STRINGIZE(__COMO_VERSION__) + +// +// versions check: +// we don't know Comeau prior to version 4245: +#if __COMO_VERSION__ < 4245 +# error "Compiler not configured - please reconfigure" +#endif +// +// last known and checked version is 4245: +#if (__COMO_VERSION__ > 4245) +# if defined(BOOST_ASSERT_CONFIG) +# error "Unknown compiler version - please run the configure tests and report the results" +# endif +#endif + + + + diff --git a/libraries/boost/include/boost/config/compiler/common_edg.hpp b/libraries/boost/include/boost/config/compiler/common_edg.hpp new file mode 100644 index 0000000000..d49ceb68e2 --- /dev/null +++ b/libraries/boost/include/boost/config/compiler/common_edg.hpp @@ -0,0 +1,156 @@ +// (C) Copyright John Maddock 2001 - 2002. +// (C) Copyright Jens Maurer 2001. +// (C) Copyright David Abrahams 2002. +// (C) Copyright Aleksey Gurtovoy 2002. +// (C) Copyright Markus Schoepflin 2005. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// +// Options common to all edg based compilers. +// +// This is included from within the individual compiler mini-configs. + +#ifndef __EDG_VERSION__ +# error This file requires that __EDG_VERSION__ be defined. +#endif + +#if (__EDG_VERSION__ <= 238) +# define BOOST_NO_INTEGRAL_INT64_T +# define BOOST_NO_SFINAE +#endif + +#if (__EDG_VERSION__ <= 240) +# define BOOST_NO_VOID_RETURNS +#endif + +#if (__EDG_VERSION__ <= 241) && !defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP) +# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP +#endif + +#if (__EDG_VERSION__ <= 244) && !defined(BOOST_NO_TEMPLATE_TEMPLATES) +# define BOOST_NO_TEMPLATE_TEMPLATES +#endif + +#if (__EDG_VERSION__ < 300) && !defined(BOOST_NO_IS_ABSTRACT) +# define BOOST_NO_IS_ABSTRACT +#endif + +#if (__EDG_VERSION__ <= 303) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL) +# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL +#endif + +// See also kai.hpp which checks a Kai-specific symbol for EH +# if !defined(__KCC) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS) +# define BOOST_NO_EXCEPTIONS +# endif + +# if !defined(__NO_LONG_LONG) +# define BOOST_HAS_LONG_LONG +# else +# define BOOST_NO_LONG_LONG +# endif + +// Not sure what version was the first to support #pragma once, but +// different EDG-based compilers (e.g. Intel) supported it for ages. +// Add a proper version check if it causes problems. +#define BOOST_HAS_PRAGMA_ONCE + +// +// C++0x features +// +// See above for BOOST_NO_LONG_LONG +// +#if (__EDG_VERSION__ < 310) +# define BOOST_NO_CXX11_EXTERN_TEMPLATE +#endif +#if (__EDG_VERSION__ <= 310) +// No support for initializer lists +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +#endif +#if (__EDG_VERSION__ < 400) +# define BOOST_NO_CXX11_VARIADIC_MACROS +#endif + +#define BOOST_NO_CXX11_AUTO_DECLARATIONS +#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +#define BOOST_NO_CXX11_CHAR16_T +#define BOOST_NO_CXX11_CHAR32_T +#define BOOST_NO_CXX11_CONSTEXPR +#define BOOST_NO_CXX11_DECLTYPE +#define BOOST_NO_CXX11_DECLTYPE_N3276 +#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +#define BOOST_NO_CXX11_DELETED_FUNCTIONS +#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +#define BOOST_NO_CXX11_LAMBDAS +#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +#define BOOST_NO_CXX11_NOEXCEPT +#define BOOST_NO_CXX11_NULLPTR +#define BOOST_NO_CXX11_RANGE_BASED_FOR +#define BOOST_NO_CXX11_RAW_LITERALS +#define BOOST_NO_CXX11_RVALUE_REFERENCES +#define BOOST_NO_CXX11_SCOPED_ENUMS +#define BOOST_NO_SFINAE_EXPR +#define BOOST_NO_CXX11_SFINAE_EXPR +#define BOOST_NO_CXX11_STATIC_ASSERT +#define BOOST_NO_CXX11_TEMPLATE_ALIASES +#define BOOST_NO_CXX11_UNICODE_LITERALS +#define BOOST_NO_CXX11_VARIADIC_TEMPLATES +#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX +#define BOOST_NO_CXX11_USER_DEFINED_LITERALS +#define BOOST_NO_CXX11_ALIGNAS +#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES +#define BOOST_NO_CXX11_INLINE_NAMESPACES +#define BOOST_NO_CXX11_REF_QUALIFIERS +#define BOOST_NO_CXX11_FINAL +#define BOOST_NO_CXX11_THREAD_LOCAL + +// C++ 14: +#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) +# define BOOST_NO_CXX14_AGGREGATE_NSDMI +#endif +#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304) +# define BOOST_NO_CXX14_BINARY_LITERALS +#endif +#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304) +# define BOOST_NO_CXX14_CONSTEXPR +#endif +#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304) +# define BOOST_NO_CXX14_DECLTYPE_AUTO +#endif +#if (__cplusplus < 201304) // There's no SD6 check for this.... +# define BOOST_NO_CXX14_DIGIT_SEPARATORS +#endif +#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304) +# define BOOST_NO_CXX14_GENERIC_LAMBDAS +#endif +#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304) +# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES +#endif +#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304) +# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION +#endif +#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) +# define BOOST_NO_CXX14_VARIABLE_TEMPLATES +#endif + +// C++17 +#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606) +# define BOOST_NO_CXX17_STRUCTURED_BINDINGS +#endif +#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606) +# define BOOST_NO_CXX17_INLINE_VARIABLES +#endif +#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603) +# define BOOST_NO_CXX17_FOLD_EXPRESSIONS +#endif + +#ifdef c_plusplus +// EDG has "long long" in non-strict mode +// However, some libraries have insufficient "long long" support +// #define BOOST_HAS_LONG_LONG +#endif diff --git a/libraries/boost/include/boost/config/compiler/compaq_cxx.hpp b/libraries/boost/include/boost/config/compiler/compaq_cxx.hpp new file mode 100644 index 0000000000..4d6b8ab3ac --- /dev/null +++ b/libraries/boost/include/boost/config/compiler/compaq_cxx.hpp @@ -0,0 +1,19 @@ +// (C) Copyright John Maddock 2001 - 2003. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// Tru64 C++ compiler setup (now HP): + +#define BOOST_COMPILER "HP Tru64 C++ " BOOST_STRINGIZE(__DECCXX_VER) + +#include + +// +// versions check: +// Nothing to do here? + + + diff --git a/libraries/boost/include/boost/config/compiler/cray.hpp b/libraries/boost/include/boost/config/compiler/cray.hpp new file mode 100644 index 0000000000..5f81078170 --- /dev/null +++ b/libraries/boost/include/boost/config/compiler/cray.hpp @@ -0,0 +1,124 @@ +// (C) Copyright John Maddock 2011. +// (C) Copyright Cray, Inc. 2013 +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// Greenhills C compiler setup: + +#define BOOST_COMPILER "Cray C version " BOOST_STRINGIZE(_RELEASE) + +#if _RELEASE_MAJOR < 8 +# error "Boost is not configured for Cray compilers prior to version 8, please try the configure script." +#endif + +// +// Check this is a recent EDG based compiler, otherwise we don't support it here: +// +#ifndef __EDG_VERSION__ +# error "Unsupported Cray compiler, please try running the configure script." +#endif + +#if _RELEASE_MINOR < 5 || __cplusplus < 201100 +#include + +// +// +#define BOOST_NO_CXX11_STATIC_ASSERT +#define BOOST_NO_CXX11_AUTO_DECLARATIONS +#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +#define BOOST_HAS_NRVO +#define BOOST_NO_CXX11_VARIADIC_MACROS +#define BOOST_NO_CXX11_VARIADIC_TEMPLATES +#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX +#define BOOST_NO_CXX11_UNICODE_LITERALS +#define BOOST_NO_TWO_PHASE_NAME_LOOKUP +#define BOOST_HAS_NRVO +#define BOOST_NO_CXX11_TEMPLATE_ALIASES +#define BOOST_NO_CXX11_STATIC_ASSERT +#define BOOST_NO_SFINAE_EXPR +#define BOOST_NO_CXX11_SFINAE_EXPR +#define BOOST_NO_CXX11_SCOPED_ENUMS +#define BOOST_NO_CXX11_RVALUE_REFERENCES +#define BOOST_NO_CXX11_RANGE_BASED_FOR +#define BOOST_NO_CXX11_RAW_LITERALS +#define BOOST_NO_CXX11_NULLPTR +#define BOOST_NO_CXX11_NOEXCEPT +#define BOOST_NO_CXX11_LAMBDAS +#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +#define BOOST_NO_CXX11_DELETED_FUNCTIONS +#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +#define BOOST_NO_CXX11_DECLTYPE_N3276 +#define BOOST_NO_CXX11_DECLTYPE +#define BOOST_NO_CXX11_CONSTEXPR +#define BOOST_NO_CXX11_USER_DEFINED_LITERALS +#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION +#define BOOST_NO_CXX11_CHAR32_T +#define BOOST_NO_CXX11_CHAR16_T +#define BOOST_NO_CXX11_REF_QUALIFIERS +#define BOOST_NO_CXX11_FINAL +#define BOOST_NO_CXX11_THREAD_LOCAL + + +//#define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG +#define BOOST_MATH_DISABLE_STD_FPCLASSIFY +//#define BOOST_HAS_FPCLASSIFY + +#define BOOST_SP_USE_PTHREADS +#define BOOST_AC_USE_PTHREADS + +/* everything that follows is working around what are thought to be + * compiler shortcomings. Revist all of these regularly. + */ + +//#define BOOST_USE_ENUM_STATIC_ASSERT +//#define BOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS //(this may be implied by the previous #define + +// These constants should be provided by the +// compiler, at least when -hgnu is asserted on the command line. + +#ifndef __ATOMIC_RELAXED +#define __ATOMIC_RELAXED 0 +#define __ATOMIC_CONSUME 1 +#define __ATOMIC_ACQUIRE 2 +#define __ATOMIC_RELEASE 3 +#define __ATOMIC_ACQ_REL 4 +#define __ATOMIC_SEQ_CST 5 +#endif + +#else /* _RELEASE_MINOR */ + +#define BOOST_HAS_VARIADIC_TMPL +#define BOOST_HAS_UNISTD_H +#define BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG +#define BOOST_HAS_TR1_COMPLEX_OVERLOADS +#define BOOST_HAS_STDINT_H +#define BOOST_HAS_STATIC_ASSERT +#define BOOST_HAS_SIGACTION +#define BOOST_HAS_SCHED_YIELD +#define BOOST_HAS_RVALUE_REFS +#define BOOST_HAS_PTHREADS +#define BOOST_HAS_PTHREAD_YIELD +#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE +#define BOOST_HAS_PARTIAL_STD_ALLOCATOR +#define BOOST_HAS_NRVO +#define BOOST_HAS_NL_TYPES_H +#define BOOST_HAS_NANOSLEEP +#define BOOST_NO_CXX11_SMART_PTR +#define BOOST_NO_CXX11_HDR_FUNCTIONAL +#define BOOST_NO_CXX14_CONSTEXPR +#define BOOST_HAS_LONG_LONG +#define BOOST_HAS_FLOAT128 + +#if __cplusplus < 201400 +#define BOOST_NO_CXX11_DECLTYPE_N3276 +#endif /* __cpluspus */ + +#endif /* _RELEASE_MINOR */ + + + diff --git a/libraries/boost/include/boost/config/compiler/diab.hpp b/libraries/boost/include/boost/config/compiler/diab.hpp new file mode 100644 index 0000000000..943db83fd6 --- /dev/null +++ b/libraries/boost/include/boost/config/compiler/diab.hpp @@ -0,0 +1,26 @@ +// (C) Copyright Brian Kuhl 2016. +// Use, modification and distribution are subject to 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) + +// Check this is a recent EDG based compiler, otherwise we don't support it here: + + +#ifndef __EDG_VERSION__ +# error "Unknown Diab compiler version - please run the configure tests and report the results" +#endif + +#include "boost/config/compiler/common_edg.hpp" + +#define BOOST_NO_TWO_PHASE_NAME_LOOKUP +#define BOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS + +#define BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE +#define BOOST_LOG_NO_MEMBER_TEMPLATE_FRIENDS +#define BOOST_REGEX_NO_EXTERNAL_TEMPLATES + +#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +#define BOOST_NO_CXX11_HDR_CODECVT +#define BOOST_NO_CXX11_NUMERIC_LIMITS + +#define BOOST_COMPILER "Wind River Diab " BOOST_STRINGIZE(__VERSION_NUMBER__) diff --git a/libraries/boost/include/boost/config/compiler/digitalmars.hpp b/libraries/boost/include/boost/config/compiler/digitalmars.hpp new file mode 100644 index 0000000000..e4c5afddd2 --- /dev/null +++ b/libraries/boost/include/boost/config/compiler/digitalmars.hpp @@ -0,0 +1,137 @@ +// Copyright (C) Christof Meerwald 2003 +// Copyright (C) Dan Watkins 2003 +// +// Use, modification and distribution are subject to 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) + +// Digital Mars C++ compiler setup: +#define BOOST_COMPILER __DMC_VERSION_STRING__ + +#define BOOST_HAS_LONG_LONG +#define BOOST_HAS_PRAGMA_ONCE + +#if !defined(BOOST_STRICT_CONFIG) +#define BOOST_NO_MEMBER_TEMPLATE_FRIENDS +#define BOOST_NO_OPERATORS_IN_NAMESPACE +#define BOOST_NO_UNREACHABLE_RETURN_DETECTION +#define BOOST_NO_SFINAE +#define BOOST_NO_USING_TEMPLATE +#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL +#endif + +// +// has macros: +#define BOOST_HAS_DIRENT_H +#define BOOST_HAS_STDINT_H +#define BOOST_HAS_WINTHREADS + +#if (__DMC__ >= 0x847) +#define BOOST_HAS_EXPM1 +#define BOOST_HAS_LOG1P +#endif + +// +// Is this really the best way to detect whether the std lib is in namespace std? +// +#ifdef __cplusplus +#include +#endif +#if !defined(__STL_IMPORT_VENDOR_CSTD) && !defined(_STLP_IMPORT_VENDOR_CSTD) +# define BOOST_NO_STDC_NAMESPACE +#endif + + +// check for exception handling support: +#if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS) +# define BOOST_NO_EXCEPTIONS +#endif + +// +// C++0x features +// +#define BOOST_NO_CXX11_AUTO_DECLARATIONS +#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +#define BOOST_NO_CXX11_CHAR16_T +#define BOOST_NO_CXX11_CHAR32_T +#define BOOST_NO_CXX11_CONSTEXPR +#define BOOST_NO_CXX11_DECLTYPE +#define BOOST_NO_CXX11_DECLTYPE_N3276 +#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +#define BOOST_NO_CXX11_DELETED_FUNCTIONS +#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +#define BOOST_NO_CXX11_EXTERN_TEMPLATE +#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +#define BOOST_NO_CXX11_LAMBDAS +#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +#define BOOST_NO_CXX11_NOEXCEPT +#define BOOST_NO_CXX11_NULLPTR +#define BOOST_NO_CXX11_RANGE_BASED_FOR +#define BOOST_NO_CXX11_RAW_LITERALS +#define BOOST_NO_CXX11_RVALUE_REFERENCES +#define BOOST_NO_CXX11_SCOPED_ENUMS +#define BOOST_NO_SFINAE_EXPR +#define BOOST_NO_CXX11_SFINAE_EXPR +#define BOOST_NO_CXX11_STATIC_ASSERT +#define BOOST_NO_CXX11_TEMPLATE_ALIASES +#define BOOST_NO_CXX11_UNICODE_LITERALS +#define BOOST_NO_CXX11_VARIADIC_TEMPLATES +#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX +#define BOOST_NO_CXX11_USER_DEFINED_LITERALS +#define BOOST_NO_CXX11_ALIGNAS +#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES +#define BOOST_NO_CXX11_INLINE_NAMESPACES +#define BOOST_NO_CXX11_REF_QUALIFIERS +#define BOOST_NO_CXX11_FINAL +#define BOOST_NO_CXX11_THREAD_LOCAL + +// C++ 14: +#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) +# define BOOST_NO_CXX14_AGGREGATE_NSDMI +#endif +#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304) +# define BOOST_NO_CXX14_BINARY_LITERALS +#endif +#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304) +# define BOOST_NO_CXX14_CONSTEXPR +#endif +#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304) +# define BOOST_NO_CXX14_DECLTYPE_AUTO +#endif +#if (__cplusplus < 201304) // There's no SD6 check for this.... +# define BOOST_NO_CXX14_DIGIT_SEPARATORS +#endif +#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304) +# define BOOST_NO_CXX14_GENERIC_LAMBDAS +#endif +#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304) +# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES +#endif +#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304) +# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION +#endif +#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) +# define BOOST_NO_CXX14_VARIABLE_TEMPLATES +#endif + +// C++17 +#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606) +# define BOOST_NO_CXX17_STRUCTURED_BINDINGS +#endif +#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606) +# define BOOST_NO_CXX17_INLINE_VARIABLES +#endif +#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603) +# define BOOST_NO_CXX17_FOLD_EXPRESSIONS +#endif + +#if (__DMC__ <= 0x840) +#error "Compiler not supported or configured - please reconfigure" +#endif +// +// last known and checked version is ...: +#if (__DMC__ > 0x848) +# if defined(BOOST_ASSERT_CONFIG) +# error "Unknown compiler version - please run the configure tests and report the results" +# endif +#endif diff --git a/libraries/boost/include/boost/config/compiler/gcc.hpp b/libraries/boost/include/boost/config/compiler/gcc.hpp new file mode 100644 index 0000000000..4fe968a03c --- /dev/null +++ b/libraries/boost/include/boost/config/compiler/gcc.hpp @@ -0,0 +1,356 @@ +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Darin Adler 2001 - 2002. +// (C) Copyright Jens Maurer 2001 - 2002. +// (C) Copyright Beman Dawes 2001 - 2003. +// (C) Copyright Douglas Gregor 2002. +// (C) Copyright David Abrahams 2002 - 2003. +// (C) Copyright Synge Todo 2003. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// GNU C++ compiler setup. + +// +// Define BOOST_GCC so we know this is "real" GCC and not some pretender: +// +#define BOOST_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) +#if !defined(__CUDACC__) +#define BOOST_GCC BOOST_GCC_VERSION +#endif + +#if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103L) +# define BOOST_GCC_CXX11 +#endif + +#if __GNUC__ == 3 +# if defined (__PATHSCALE__) +# define BOOST_NO_TWO_PHASE_NAME_LOOKUP +# define BOOST_NO_IS_ABSTRACT +# endif + +# if __GNUC_MINOR__ < 4 +# define BOOST_NO_IS_ABSTRACT +# endif +# define BOOST_NO_CXX11_EXTERN_TEMPLATE +#endif +#if __GNUC__ < 4 +// +// All problems to gcc-3.x and earlier here: +// +#define BOOST_NO_TWO_PHASE_NAME_LOOKUP +# ifdef __OPEN64__ +# define BOOST_NO_IS_ABSTRACT +# endif +#endif + +// GCC prior to 3.4 had #pragma once too but it didn't work well with filesystem links +#if BOOST_GCC_VERSION >= 30400 +#define BOOST_HAS_PRAGMA_ONCE +#endif + +#if BOOST_GCC_VERSION < 40400 +// Previous versions of GCC did not completely implement value-initialization: +// GCC Bug 30111, "Value-initialization of POD base class doesn't initialize +// members", reported by Jonathan Wakely in 2006, +// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30111 (fixed for GCC 4.4) +// GCC Bug 33916, "Default constructor fails to initialize array members", +// reported by Michael Elizabeth Chastain in 2007, +// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33916 (fixed for GCC 4.2.4) +// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues +#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION +#endif + +#if !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS) +# define BOOST_NO_EXCEPTIONS +#endif + + +// +// Threading support: Turn this on unconditionally here (except for +// those platforms where we can know for sure). It will get turned off again +// later if no threading API is detected. +// +#if !defined(__MINGW32__) && !defined(linux) && !defined(__linux) && !defined(__linux__) +# define BOOST_HAS_THREADS +#endif + +// +// gcc has "long long" +// Except on Darwin with standard compliance enabled (-pedantic) +// Apple gcc helpfully defines this macro we can query +// +#if !defined(__DARWIN_NO_LONG_LONG) +# define BOOST_HAS_LONG_LONG +#endif + +// +// gcc implements the named return value optimization since version 3.1 +// +#define BOOST_HAS_NRVO + +// Branch prediction hints +#define BOOST_LIKELY(x) __builtin_expect(x, 1) +#define BOOST_UNLIKELY(x) __builtin_expect(x, 0) + +// +// Dynamic shared object (DSO) and dynamic-link library (DLL) support +// +#if __GNUC__ >= 4 +# if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__CYGWIN__) + // All Win32 development environments, including 64-bit Windows and MinGW, define + // _WIN32 or one of its variant spellings. Note that Cygwin is a POSIX environment, + // so does not define _WIN32 or its variants, but still supports dllexport/dllimport. +# define BOOST_HAS_DECLSPEC +# define BOOST_SYMBOL_EXPORT __attribute__((__dllexport__)) +# define BOOST_SYMBOL_IMPORT __attribute__((__dllimport__)) +# else +# define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default"))) +# define BOOST_SYMBOL_IMPORT +# endif +# define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default"))) +#else +// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined +# define BOOST_SYMBOL_EXPORT +#endif + +// +// RTTI and typeinfo detection is possible post gcc-4.3: +// +#if BOOST_GCC_VERSION > 40300 +# ifndef __GXX_RTTI +# ifndef BOOST_NO_TYPEID +# define BOOST_NO_TYPEID +# endif +# ifndef BOOST_NO_RTTI +# define BOOST_NO_RTTI +# endif +# endif +#endif + +// +// Recent GCC versions have __int128 when in 64-bit mode. +// +// We disable this if the compiler is really nvcc with C++03 as it +// doesn't actually support __int128 as of CUDA_VERSION=7500 +// even though it defines __SIZEOF_INT128__. +// See https://svn.boost.org/trac/boost/ticket/8048 +// https://svn.boost.org/trac/boost/ticket/11852 +// Only re-enable this for nvcc if you're absolutely sure +// of the circumstances under which it's supported: +// +#if defined(__CUDACC__) +# if defined(BOOST_GCC_CXX11) +# define BOOST_NVCC_CXX11 +# else +# define BOOST_NVCC_CXX03 +# endif +#endif + +#if defined(__SIZEOF_INT128__) && !defined(BOOST_NVCC_CXX03) +# define BOOST_HAS_INT128 +#endif +// +// Recent GCC versions have a __float128 native type, we need to +// include a std lib header to detect this - not ideal, but we'll +// be including later anyway when we select the std lib. +// +// Nevertheless, as of CUDA 7.5, using __float128 with the host +// compiler in pre-C++11 mode is still not supported. +// See https://svn.boost.org/trac/boost/ticket/11852 +// +#ifdef __cplusplus +#include +#else +#include +#endif +#if defined(_GLIBCXX_USE_FLOAT128) && !defined(__STRICT_ANSI__) && !defined(BOOST_NVCC_CXX03) +# define BOOST_HAS_FLOAT128 +#endif + +// C++0x features in 4.3.n and later +// +#if (BOOST_GCC_VERSION >= 40300) && defined(BOOST_GCC_CXX11) +// C++0x features are only enabled when -std=c++0x or -std=gnu++0x are +// passed on the command line, which in turn defines +// __GXX_EXPERIMENTAL_CXX0X__. +# define BOOST_HAS_DECLTYPE +# define BOOST_HAS_RVALUE_REFS +# define BOOST_HAS_STATIC_ASSERT +# define BOOST_HAS_VARIADIC_TMPL +#else +# define BOOST_NO_CXX11_DECLTYPE +# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +# define BOOST_NO_CXX11_RVALUE_REFERENCES +# define BOOST_NO_CXX11_STATIC_ASSERT +#endif + +// C++0x features in 4.4.n and later +// +#if (BOOST_GCC_VERSION < 40400) || !defined(BOOST_GCC_CXX11) +# define BOOST_NO_CXX11_AUTO_DECLARATIONS +# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +# define BOOST_NO_CXX11_CHAR16_T +# define BOOST_NO_CXX11_CHAR32_T +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +# define BOOST_NO_CXX11_DELETED_FUNCTIONS +# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES +# define BOOST_NO_CXX11_INLINE_NAMESPACES +# define BOOST_NO_CXX11_VARIADIC_TEMPLATES +#endif + +#if BOOST_GCC_VERSION < 40500 +# define BOOST_NO_SFINAE_EXPR +#endif + +// GCC 4.5 forbids declaration of defaulted functions in private or protected sections +#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ == 5) || !defined(BOOST_GCC_CXX11) +# define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS +#endif + +// C++0x features in 4.5.0 and later +// +#if (BOOST_GCC_VERSION < 40500) || !defined(BOOST_GCC_CXX11) +# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +# define BOOST_NO_CXX11_LAMBDAS +# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +# define BOOST_NO_CXX11_RAW_LITERALS +# define BOOST_NO_CXX11_UNICODE_LITERALS +#endif + +// C++0x features in 4.5.1 and later +// +#if (BOOST_GCC_VERSION < 40501) || !defined(BOOST_GCC_CXX11) +// scoped enums have a serious bug in 4.4.0, so define BOOST_NO_CXX11_SCOPED_ENUMS before 4.5.1 +// See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38064 +# define BOOST_NO_CXX11_SCOPED_ENUMS +#endif + +// C++0x features in 4.6.n and later +// +#if (BOOST_GCC_VERSION < 40600) || !defined(BOOST_GCC_CXX11) +#define BOOST_NO_CXX11_CONSTEXPR +#define BOOST_NO_CXX11_DEFAULTED_MOVES +#define BOOST_NO_CXX11_NOEXCEPT +#define BOOST_NO_CXX11_NULLPTR +#define BOOST_NO_CXX11_RANGE_BASED_FOR +#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX +#endif + +// C++0x features in 4.7.n and later +// +#if (BOOST_GCC_VERSION < 40700) || !defined(BOOST_GCC_CXX11) +# define BOOST_NO_CXX11_FINAL +# define BOOST_NO_CXX11_TEMPLATE_ALIASES +# define BOOST_NO_CXX11_USER_DEFINED_LITERALS +# define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS +#endif + +// C++0x features in 4.8.n and later +// +#if (BOOST_GCC_VERSION < 40800) || !defined(BOOST_GCC_CXX11) +# define BOOST_NO_CXX11_ALIGNAS +# define BOOST_NO_CXX11_THREAD_LOCAL +# define BOOST_NO_CXX11_SFINAE_EXPR +#endif + +// C++0x features in 4.8.1 and later +// +#if (BOOST_GCC_VERSION < 40801) || !defined(BOOST_GCC_CXX11) +# define BOOST_NO_CXX11_DECLTYPE_N3276 +# define BOOST_NO_CXX11_REF_QUALIFIERS +# define BOOST_NO_CXX14_BINARY_LITERALS +#endif + +// C++14 features in 4.9.0 and later +// +#if (BOOST_GCC_VERSION < 40900) || (__cplusplus < 201300) +# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION +# define BOOST_NO_CXX14_GENERIC_LAMBDAS +# define BOOST_NO_CXX14_DIGIT_SEPARATORS +# define BOOST_NO_CXX14_DECLTYPE_AUTO +# if !((BOOST_GCC_VERSION >= 40801) && (BOOST_GCC_VERSION < 40900) && defined(BOOST_GCC_CXX11)) +# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES +# endif +#endif + + +// C++ 14: +#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) +# define BOOST_NO_CXX14_AGGREGATE_NSDMI +#endif +#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304) +# define BOOST_NO_CXX14_CONSTEXPR +#endif +#if (BOOST_GCC_VERSION < 50200) || !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) +# define BOOST_NO_CXX14_VARIABLE_TEMPLATES +#endif + +// C++17 +#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606) +# define BOOST_NO_CXX17_STRUCTURED_BINDINGS +#endif +#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606) +# define BOOST_NO_CXX17_INLINE_VARIABLES +#endif +#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603) +# define BOOST_NO_CXX17_FOLD_EXPRESSIONS +#endif + +#if __GNUC__ >= 7 +# define BOOST_FALLTHROUGH __attribute__((fallthrough)) +#endif + +#ifdef __MINGW32__ +// Currently (June 2017) thread_local is broken on mingw for all current compiler releases, see +// https://sourceforge.net/p/mingw-w64/bugs/527/ +// Not setting this causes program termination on thread exit. +#define BOOST_NO_CXX11_THREAD_LOCAL +#endif + +// +// Unused attribute: +#if __GNUC__ >= 4 +# define BOOST_ATTRIBUTE_UNUSED __attribute__((__unused__)) +#endif + +// Type aliasing hint. Supported since gcc 3.3. +#define BOOST_MAY_ALIAS __attribute__((__may_alias__)) + +// +// __builtin_unreachable: +#if BOOST_GCC_VERSION >= 40800 +#define BOOST_UNREACHABLE_RETURN(x) __builtin_unreachable(); +#endif + +#ifndef BOOST_COMPILER +# define BOOST_COMPILER "GNU C++ version " __VERSION__ +#endif + +// ConceptGCC compiler: +// http://www.generic-programming.org/software/ConceptGCC/ +#ifdef __GXX_CONCEPTS__ +# define BOOST_HAS_CONCEPTS +# define BOOST_COMPILER "ConceptGCC version " __VERSION__ +#endif + +// versions check: +// we don't know gcc prior to version 3.30: +#if (BOOST_GCC_VERSION< 30300) +# error "Compiler not configured - please reconfigure" +#endif +// +// last known and checked version is 7.1: +#if (BOOST_GCC_VERSION > 70100) +# if defined(BOOST_ASSERT_CONFIG) +# error "Boost.Config is older than your compiler - please check for an updated Boost release." +# else +// we don't emit warnings here anymore since there are no defect macros defined for +// gcc post 3.4, so any failures are gcc regressions... +//# warning "Unknown compiler version - please run the configure tests and report the results" +# endif +#endif + diff --git a/libraries/boost/include/boost/config/compiler/gcc_xml.hpp b/libraries/boost/include/boost/config/compiler/gcc_xml.hpp new file mode 100644 index 0000000000..2b47585ab8 --- /dev/null +++ b/libraries/boost/include/boost/config/compiler/gcc_xml.hpp @@ -0,0 +1,108 @@ +// (C) Copyright John Maddock 2006. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// GCC-XML C++ compiler setup: + +# if !defined(__GCCXML_GNUC__) || ((__GCCXML_GNUC__ <= 3) && (__GCCXML_GNUC_MINOR__ <= 3)) +# define BOOST_NO_IS_ABSTRACT +# endif + +// +// Threading support: Turn this on unconditionally here (except for +// those platforms where we can know for sure). It will get turned off again +// later if no threading API is detected. +// +#if !defined(__MINGW32__) && !defined(_MSC_VER) && !defined(linux) && !defined(__linux) && !defined(__linux__) +# define BOOST_HAS_THREADS +#endif + +// +// gcc has "long long" +// +#define BOOST_HAS_LONG_LONG + +// C++0x features: +// +# define BOOST_NO_CXX11_CONSTEXPR +# define BOOST_NO_CXX11_NULLPTR +# define BOOST_NO_CXX11_TEMPLATE_ALIASES +# define BOOST_NO_CXX11_DECLTYPE +# define BOOST_NO_CXX11_DECLTYPE_N3276 +# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +# define BOOST_NO_CXX11_RVALUE_REFERENCES +# define BOOST_NO_CXX11_STATIC_ASSERT +# define BOOST_NO_CXX11_VARIADIC_TEMPLATES +# define BOOST_NO_CXX11_VARIADIC_MACROS +# define BOOST_NO_CXX11_AUTO_DECLARATIONS +# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +# define BOOST_NO_CXX11_CHAR16_T +# define BOOST_NO_CXX11_CHAR32_T +# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +# define BOOST_NO_CXX11_DELETED_FUNCTIONS +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +# define BOOST_NO_CXX11_SCOPED_ENUMS +# define BOOST_NO_SFINAE_EXPR +# define BOOST_NO_CXX11_SFINAE_EXPR +# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +# define BOOST_NO_CXX11_LAMBDAS +# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +# define BOOST_NO_CXX11_RANGE_BASED_FOR +# define BOOST_NO_CXX11_RAW_LITERALS +# define BOOST_NO_CXX11_UNICODE_LITERALS +# define BOOST_NO_CXX11_NOEXCEPT +# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX +# define BOOST_NO_CXX11_USER_DEFINED_LITERALS +# define BOOST_NO_CXX11_ALIGNAS +# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES +# define BOOST_NO_CXX11_INLINE_NAMESPACES +# define BOOST_NO_CXX11_REF_QUALIFIERS +# define BOOST_NO_CXX11_FINAL +# define BOOST_NO_CXX11_THREAD_LOCAL + +// C++ 14: +#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) +# define BOOST_NO_CXX14_AGGREGATE_NSDMI +#endif +#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304) +# define BOOST_NO_CXX14_BINARY_LITERALS +#endif +#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304) +# define BOOST_NO_CXX14_CONSTEXPR +#endif +#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304) +# define BOOST_NO_CXX14_DECLTYPE_AUTO +#endif +#if (__cplusplus < 201304) // There's no SD6 check for this.... +# define BOOST_NO_CXX14_DIGIT_SEPARATORS +#endif +#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304) +# define BOOST_NO_CXX14_GENERIC_LAMBDAS +#endif +#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304) +# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES +#endif +#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304) +# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION +#endif +#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) +# define BOOST_NO_CXX14_VARIABLE_TEMPLATES +#endif + +// C++17 +#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606) +# define BOOST_NO_CXX17_STRUCTURED_BINDINGS +#endif +#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606) +# define BOOST_NO_CXX17_INLINE_VARIABLES +#endif +#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603) +# define BOOST_NO_CXX17_FOLD_EXPRESSIONS +#endif + +#define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__ + + diff --git a/libraries/boost/include/boost/config/compiler/greenhills.hpp b/libraries/boost/include/boost/config/compiler/greenhills.hpp new file mode 100644 index 0000000000..a76a07cf4a --- /dev/null +++ b/libraries/boost/include/boost/config/compiler/greenhills.hpp @@ -0,0 +1,28 @@ +// (C) Copyright John Maddock 2001. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// Greenhills C++ compiler setup: + +#define BOOST_COMPILER "Greenhills C++ version " BOOST_STRINGIZE(__ghs) + +#include + +// +// versions check: +// we don't support Greenhills prior to version 0: +#if __ghs < 0 +# error "Compiler not supported or configured - please reconfigure" +#endif +// +// last known and checked version is 0: +#if (__ghs > 0) +# if defined(BOOST_ASSERT_CONFIG) +# error "Unknown compiler version - please run the configure tests and report the results" +# endif +#endif + + diff --git a/libraries/boost/include/boost/config/compiler/hp_acc.hpp b/libraries/boost/include/boost/config/compiler/hp_acc.hpp new file mode 100644 index 0000000000..9df18eaf67 --- /dev/null +++ b/libraries/boost/include/boost/config/compiler/hp_acc.hpp @@ -0,0 +1,147 @@ +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Jens Maurer 2001 - 2003. +// (C) Copyright Aleksey Gurtovoy 2002. +// (C) Copyright David Abrahams 2002 - 2003. +// (C) Copyright Toon Knapen 2003. +// (C) Copyright Boris Gubenko 2006 - 2007. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// HP aCC C++ compiler setup: + +#if defined(__EDG__) +#include +#endif + +#if (__HP_aCC <= 33100) +# define BOOST_NO_INTEGRAL_INT64_T +# define BOOST_NO_OPERATORS_IN_NAMESPACE +# if !defined(_NAMESPACE_STD) +# define BOOST_NO_STD_LOCALE +# define BOOST_NO_STRINGSTREAM +# endif +#endif + +#if (__HP_aCC <= 33300) +// member templates are sufficiently broken that we disable them for now +# define BOOST_NO_MEMBER_TEMPLATES +# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS +# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE +#endif + +#if (__HP_aCC <= 38000) +# define BOOST_NO_TWO_PHASE_NAME_LOOKUP +#endif + +#if (__HP_aCC > 50000) && (__HP_aCC < 60000) +# define BOOST_NO_UNREACHABLE_RETURN_DETECTION +# define BOOST_NO_TEMPLATE_TEMPLATES +# define BOOST_NO_SWPRINTF +# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS +# define BOOST_NO_IS_ABSTRACT +# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS +#endif + +// optional features rather than defects: +#if (__HP_aCC >= 33900) +# define BOOST_HAS_LONG_LONG +# define BOOST_HAS_PARTIAL_STD_ALLOCATOR +#endif + +#if (__HP_aCC >= 50000 ) && (__HP_aCC <= 53800 ) || (__HP_aCC < 31300 ) +# define BOOST_NO_MEMBER_TEMPLATE_KEYWORD +#endif + +// This macro should not be defined when compiling in strict ansi +// mode, but, currently, we don't have the ability to determine +// what standard mode we are compiling with. Some future version +// of aCC6 compiler will provide predefined macros reflecting the +// compilation options, including the standard mode. +#if (__HP_aCC >= 60000) || ((__HP_aCC > 38000) && defined(__hpxstd98)) +# define BOOST_NO_TWO_PHASE_NAME_LOOKUP +#endif + +#define BOOST_COMPILER "HP aCC version " BOOST_STRINGIZE(__HP_aCC) + +// +// versions check: +// we don't support HP aCC prior to version 33000: +#if __HP_aCC < 33000 +# error "Compiler not supported or configured - please reconfigure" +#endif + +// +// Extended checks for supporting aCC on PA-RISC +#if __HP_aCC > 30000 && __HP_aCC < 50000 +# if __HP_aCC < 38000 + // versions prior to version A.03.80 not supported +# error "Compiler version not supported - version A.03.80 or higher is required" +# elif !defined(__hpxstd98) + // must compile using the option +hpxstd98 with version A.03.80 and above +# error "Compiler option '+hpxstd98' is required for proper support" +# endif //PA-RISC +#endif + +// +// C++0x features +// +// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG +// +#if !defined(__EDG__) + +#define BOOST_NO_CXX11_AUTO_DECLARATIONS +#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +#define BOOST_NO_CXX11_CHAR16_T +#define BOOST_NO_CXX11_CHAR32_T +#define BOOST_NO_CXX11_CONSTEXPR +#define BOOST_NO_CXX11_DECLTYPE +#define BOOST_NO_CXX11_DECLTYPE_N3276 +#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +#define BOOST_NO_CXX11_DELETED_FUNCTIONS +#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +#define BOOST_NO_CXX11_EXTERN_TEMPLATE +#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +#define BOOST_NO_CXX11_LAMBDAS +#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +#define BOOST_NO_CXX11_NOEXCEPT +#define BOOST_NO_CXX11_NULLPTR +#define BOOST_NO_CXX11_RANGE_BASED_FOR +#define BOOST_NO_CXX11_RAW_LITERALS +#define BOOST_NO_CXX11_RVALUE_REFERENCES +#define BOOST_NO_CXX11_SCOPED_ENUMS +#define BOOST_NO_SFINAE_EXPR +#define BOOST_NO_CXX11_SFINAE_EXPR +#define BOOST_NO_CXX11_STATIC_ASSERT +#define BOOST_NO_CXX11_TEMPLATE_ALIASES +#define BOOST_NO_CXX11_UNICODE_LITERALS +#define BOOST_NO_CXX11_VARIADIC_TEMPLATES +#define BOOST_NO_CXX11_USER_DEFINED_LITERALS +#define BOOST_NO_CXX11_ALIGNAS +#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES +#define BOOST_NO_CXX11_INLINE_NAMESPACES +#define BOOST_NO_CXX11_REF_QUALIFIERS +#define BOOST_NO_CXX11_THREAD_LOCAL + +/* + See https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443331 and + https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443436 +*/ + +#if (__HP_aCC < 62500) || !defined(HP_CXX0x_SOURCE) + #define BOOST_NO_CXX11_VARIADIC_MACROS +#endif + +#endif + +// +// last known and checked version for HP-UX/ia64 is 61300 +// last known and checked version for PA-RISC is 38000 +#if ((__HP_aCC > 61300) || ((__HP_aCC > 38000) && defined(__hpxstd98))) +# if defined(BOOST_ASSERT_CONFIG) +# error "Unknown compiler version - please run the configure tests and report the results" +# endif +#endif diff --git a/libraries/boost/include/boost/config/compiler/intel.hpp b/libraries/boost/include/boost/config/compiler/intel.hpp new file mode 100644 index 0000000000..0eea05b916 --- /dev/null +++ b/libraries/boost/include/boost/config/compiler/intel.hpp @@ -0,0 +1,564 @@ +// (C) Copyright John Maddock 2001-8. +// (C) Copyright Peter Dimov 2001. +// (C) Copyright Jens Maurer 2001. +// (C) Copyright David Abrahams 2002 - 2003. +// (C) Copyright Aleksey Gurtovoy 2002 - 2003. +// (C) Copyright Guillaume Melquiond 2002 - 2003. +// (C) Copyright Beman Dawes 2003. +// (C) Copyright Martin Wille 2003. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// Intel compiler setup: + +#if defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500) && (defined(_MSC_VER) || defined(__GNUC__)) + +#ifdef _MSC_VER + +#include + +#undef BOOST_MSVC +#undef BOOST_MSVC_FULL_VER + +#if (__INTEL_COMPILER >= 1500) && (_MSC_VER >= 1900) +// +// These appear to be supported, even though VC++ may not support them: +// +#define BOOST_HAS_EXPM1 +#define BOOST_HAS_LOG1P +#undef BOOST_NO_CXX14_BINARY_LITERALS +// This one may be a little risky to enable?? +#undef BOOST_NO_SFINAE_EXPR + +#endif + +#if (__INTEL_COMPILER <= 1600) && !defined(BOOST_NO_CXX14_VARIABLE_TEMPLATES) +# define BOOST_NO_CXX14_VARIABLE_TEMPLATES +#endif + +#else // defined(_MSC_VER) + +#include + +#undef BOOST_GCC_VERSION +#undef BOOST_GCC_CXX11 +#undef BOOST_GCC + +// Broken in all versions up to 17 (newer versions not tested) +#if (__INTEL_COMPILER <= 1700) && !defined(BOOST_NO_CXX14_CONSTEXPR) +# define BOOST_NO_CXX14_CONSTEXPR +#endif + +#endif // defined(_MSC_VER) + +#undef BOOST_COMPILER + +#if defined(__INTEL_COMPILER) +#if __INTEL_COMPILER == 9999 +# define BOOST_INTEL_CXX_VERSION 1200 // Intel bug in 12.1. +#else +# define BOOST_INTEL_CXX_VERSION __INTEL_COMPILER +#endif +#elif defined(__ICL) +# define BOOST_INTEL_CXX_VERSION __ICL +#elif defined(__ICC) +# define BOOST_INTEL_CXX_VERSION __ICC +#elif defined(__ECC) +# define BOOST_INTEL_CXX_VERSION __ECC +#endif + +// Flags determined by comparing output of 'icpc -dM -E' with and without '-std=c++0x' +#if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && (__STDC_HOSTED__ && (BOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__) || defined(__GXX_EXPERIMENTAL_CXX0X__) +# define BOOST_INTEL_STDCXX0X +#endif +#if defined(_MSC_VER) && (_MSC_VER >= 1600) +# define BOOST_INTEL_STDCXX0X +#endif + +#ifdef __GNUC__ +# define BOOST_INTEL_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) +#endif + +#if !defined(BOOST_COMPILER) +# if defined(BOOST_INTEL_STDCXX0X) +# define BOOST_COMPILER "Intel C++ C++0x mode version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION) +# else +# define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION) +# endif +#endif + +#define BOOST_INTEL BOOST_INTEL_CXX_VERSION + +#if defined(_WIN32) || defined(_WIN64) +# define BOOST_INTEL_WIN BOOST_INTEL +#else +# define BOOST_INTEL_LINUX BOOST_INTEL +#endif + +#else // defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500) && (defined(_MSC_VER) || defined(__GNUC__)) + +#include + +#if defined(__INTEL_COMPILER) +#if __INTEL_COMPILER == 9999 +# define BOOST_INTEL_CXX_VERSION 1200 // Intel bug in 12.1. +#else +# define BOOST_INTEL_CXX_VERSION __INTEL_COMPILER +#endif +#elif defined(__ICL) +# define BOOST_INTEL_CXX_VERSION __ICL +#elif defined(__ICC) +# define BOOST_INTEL_CXX_VERSION __ICC +#elif defined(__ECC) +# define BOOST_INTEL_CXX_VERSION __ECC +#endif + +// Flags determined by comparing output of 'icpc -dM -E' with and without '-std=c++0x' +#if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && (__STDC_HOSTED__ && (BOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__) || defined(__GXX_EXPERIMENTAL_CXX0X__) +# define BOOST_INTEL_STDCXX0X +#endif +#if defined(_MSC_VER) && (_MSC_VER >= 1600) +# define BOOST_INTEL_STDCXX0X +#endif + +#ifdef __GNUC__ +# define BOOST_INTEL_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) +#endif + +#if !defined(BOOST_COMPILER) +# if defined(BOOST_INTEL_STDCXX0X) +# define BOOST_COMPILER "Intel C++ C++0x mode version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION) +# else +# define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION) +# endif +#endif + +#define BOOST_INTEL BOOST_INTEL_CXX_VERSION + +#if defined(_WIN32) || defined(_WIN64) +# define BOOST_INTEL_WIN BOOST_INTEL +#else +# define BOOST_INTEL_LINUX BOOST_INTEL +#endif + +#if (BOOST_INTEL_CXX_VERSION <= 600) + +# if defined(_MSC_VER) && (_MSC_VER <= 1300) // added check for <= VC 7 (Peter Dimov) + +// Boost libraries assume strong standard conformance unless otherwise +// indicated by a config macro. As configured by Intel, the EDG front-end +// requires certain compiler options be set to achieve that strong conformance. +// Particularly /Qoption,c,--arg_dep_lookup (reported by Kirk Klobe & Thomas Witt) +// and /Zc:wchar_t,forScope. See boost-root/tools/build/intel-win32-tools.jam for +// details as they apply to particular versions of the compiler. When the +// compiler does not predefine a macro indicating if an option has been set, +// this config file simply assumes the option has been set. +// Thus BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP will not be defined, even if +// the compiler option is not enabled. + +# define BOOST_NO_SWPRINTF +# endif + +// Void returns, 64 bit integrals don't work when emulating VC 6 (Peter Dimov) + +# if defined(_MSC_VER) && (_MSC_VER <= 1200) +# define BOOST_NO_VOID_RETURNS +# define BOOST_NO_INTEGRAL_INT64_T +# endif + +#endif + +#if (BOOST_INTEL_CXX_VERSION <= 710) && defined(_WIN32) +# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS +#endif + +// See http://aspn.activestate.com/ASPN/Mail/Message/boost/1614864 +#if BOOST_INTEL_CXX_VERSION < 600 +# define BOOST_NO_INTRINSIC_WCHAR_T +#else +// We should test the macro _WCHAR_T_DEFINED to check if the compiler +// supports wchar_t natively. *BUT* there is a problem here: the standard +// headers define this macro if they typedef wchar_t. Anyway, we're lucky +// because they define it without a value, while Intel C++ defines it +// to 1. So we can check its value to see if the macro was defined natively +// or not. +// Under UNIX, the situation is exactly the same, but the macro _WCHAR_T +// is used instead. +# if ((_WCHAR_T_DEFINED + 0) == 0) && ((_WCHAR_T + 0) == 0) +# define BOOST_NO_INTRINSIC_WCHAR_T +# endif +#endif + +#if defined(__GNUC__) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL) +// +// Figure out when Intel is emulating this gcc bug +// (All Intel versions prior to 9.0.26, and versions +// later than that if they are set up to emulate gcc 3.2 +// or earlier): +// +# if ((__GNUC__ == 3) && (__GNUC_MINOR__ <= 2)) || (BOOST_INTEL < 900) || (__INTEL_COMPILER_BUILD_DATE < 20050912) +# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL +# endif +#endif +#if (defined(__GNUC__) && (__GNUC__ < 4)) || (defined(_WIN32) && (BOOST_INTEL_CXX_VERSION <= 1200)) || (BOOST_INTEL_CXX_VERSION <= 1200) +// GCC or VC emulation: +#define BOOST_NO_TWO_PHASE_NAME_LOOKUP +#endif +// +// Verify that we have actually got BOOST_NO_INTRINSIC_WCHAR_T +// set correctly, if we don't do this now, we will get errors later +// in type_traits code among other things, getting this correct +// for the Intel compiler is actually remarkably fragile and tricky: +// +#ifdef __cplusplus +#if defined(BOOST_NO_INTRINSIC_WCHAR_T) +#include +template< typename T > struct assert_no_intrinsic_wchar_t; +template<> struct assert_no_intrinsic_wchar_t { typedef void type; }; +// if you see an error here then you need to unset BOOST_NO_INTRINSIC_WCHAR_T +// where it is defined above: +typedef assert_no_intrinsic_wchar_t::type assert_no_intrinsic_wchar_t_; +#else +template< typename T > struct assert_intrinsic_wchar_t; +template<> struct assert_intrinsic_wchar_t {}; +// if you see an error here then define BOOST_NO_INTRINSIC_WCHAR_T on the command line: +template<> struct assert_intrinsic_wchar_t {}; +#endif +#endif + +#if defined(_MSC_VER) && (_MSC_VER+0 >= 1000) +# if _MSC_VER >= 1200 +# define BOOST_HAS_MS_INT64 +# endif +# define BOOST_NO_SWPRINTF +# define BOOST_NO_TWO_PHASE_NAME_LOOKUP +#elif defined(_WIN32) +# define BOOST_DISABLE_WIN32 +#endif + +// I checked version 6.0 build 020312Z, it implements the NRVO. +// Correct this as you find out which version of the compiler +// implemented the NRVO first. (Daniel Frey) +#if (BOOST_INTEL_CXX_VERSION >= 600) +# define BOOST_HAS_NRVO +#endif + +// Branch prediction hints +// I'm not sure 8.0 was the first version to support these builtins, +// update the condition if the version is not accurate. (Andrey Semashev) +#if defined(__GNUC__) && BOOST_INTEL_CXX_VERSION >= 800 +#define BOOST_LIKELY(x) __builtin_expect(x, 1) +#define BOOST_UNLIKELY(x) __builtin_expect(x, 0) +#endif + +// RTTI +// __RTTI is the EDG macro +// __INTEL_RTTI__ is the Intel macro +// __GXX_RTTI is the g++ macro +// _CPPRTTI is the MSVC++ macro +#if !defined(__RTTI) && !defined(__INTEL_RTTI__) && !defined(__GXX_RTTI) && !defined(_CPPRTTI) + +#if !defined(BOOST_NO_RTTI) +# define BOOST_NO_RTTI +#endif + +// in MS mode, static typeid works even when RTTI is off +#if !defined(_MSC_VER) && !defined(BOOST_NO_TYPEID) +# define BOOST_NO_TYPEID +#endif + +#endif + +// +// versions check: +// we don't support Intel prior to version 6.0: +#if BOOST_INTEL_CXX_VERSION < 600 +# error "Compiler not supported or configured - please reconfigure" +#endif + +// Intel on MacOS requires +#if defined(__APPLE__) && defined(__INTEL_COMPILER) +# define BOOST_NO_TWO_PHASE_NAME_LOOKUP +#endif + +// Intel on Altix Itanium +#if defined(__itanium__) && defined(__INTEL_COMPILER) +# define BOOST_NO_TWO_PHASE_NAME_LOOKUP +#endif + +// +// An attempt to value-initialize a pointer-to-member may trigger an +// internal error on Intel <= 11.1 (last checked version), as was +// reported by John Maddock, Intel support issue 589832, May 2010. +// Moreover, according to test results from Huang-Vista-x86_32_intel, +// intel-vc9-win-11.1 may leave a non-POD array uninitialized, in some +// cases when it should be value-initialized. +// (Niels Dekker, LKEB, May 2010) +// Apparently Intel 12.1 (compiler version number 9999 !!) has the same issue (compiler regression). +#if defined(__INTEL_COMPILER) +# if (__INTEL_COMPILER <= 1110) || (__INTEL_COMPILER == 9999) || (defined(_WIN32) && (__INTEL_COMPILER < 1600)) +# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION +# endif +#endif + +// +// Dynamic shared object (DSO) and dynamic-link library (DLL) support +// +#if defined(__GNUC__) && (__GNUC__ >= 4) +# define BOOST_SYMBOL_EXPORT __attribute__((visibility("default"))) +# define BOOST_SYMBOL_IMPORT +# define BOOST_SYMBOL_VISIBLE __attribute__((visibility("default"))) +#endif + +// Type aliasing hint +#if defined(__GNUC__) && (BOOST_INTEL_CXX_VERSION >= 1300) +# define BOOST_MAY_ALIAS __attribute__((__may_alias__)) +#endif + +// +// C++0x features +// For each feature we need to check both the Intel compiler version, +// and the version of MSVC or GCC that we are emulating. +// See http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/ +// for a list of which features were implemented in which Intel releases. +// +#if defined(BOOST_INTEL_STDCXX0X) +// BOOST_NO_CXX11_CONSTEXPR: +#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && !defined(_MSC_VER) +// Available in earlier Intel versions, but fail our tests: +# undef BOOST_NO_CXX11_CONSTEXPR +#endif +// BOOST_NO_CXX11_NULLPTR: +#if (BOOST_INTEL_CXX_VERSION >= 1210) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600)) +# undef BOOST_NO_CXX11_NULLPTR +#endif +// BOOST_NO_CXX11_TEMPLATE_ALIASES +#if (BOOST_INTEL_CXX_VERSION >= 1210) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40700)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827)) +# undef BOOST_NO_CXX11_TEMPLATE_ALIASES +#endif + +// BOOST_NO_CXX11_DECLTYPE +#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600)) +# undef BOOST_NO_CXX11_DECLTYPE +#endif + +// BOOST_NO_CXX11_DECLTYPE_N3276 +#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827)) +# undef BOOST_NO_CXX11_DECLTYPE_N3276 +#endif + +// BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827)) +# undef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +#endif + +// BOOST_NO_CXX11_RVALUE_REFERENCES +#if (BOOST_INTEL_CXX_VERSION >= 1300) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600)) +// This is available from earlier Intel versions, but breaks Filesystem and other libraries: +# undef BOOST_NO_CXX11_RVALUE_REFERENCES +#endif + +// BOOST_NO_CXX11_STATIC_ASSERT +#if (BOOST_INTEL_CXX_VERSION >= 1110) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600)) +# undef BOOST_NO_CXX11_STATIC_ASSERT +#endif + +// BOOST_NO_CXX11_VARIADIC_TEMPLATES +#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827)) +# undef BOOST_NO_CXX11_VARIADIC_TEMPLATES +#endif + +// BOOST_NO_CXX11_VARIADIC_MACROS +#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40200)) && (!defined(_MSC_VER) || (_MSC_VER >= 1400)) +# undef BOOST_NO_CXX11_VARIADIC_MACROS +#endif + +// BOOST_NO_CXX11_AUTO_DECLARATIONS +#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600)) +# undef BOOST_NO_CXX11_AUTO_DECLARATIONS +#endif + +// BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600)) +# undef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +#endif + +// BOOST_NO_CXX11_CHAR16_T +#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999)) +# undef BOOST_NO_CXX11_CHAR16_T +#endif + +// BOOST_NO_CXX11_CHAR32_T +#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999)) +# undef BOOST_NO_CXX11_CHAR32_T +#endif + +// BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827)) +# undef BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +#endif + +// BOOST_NO_CXX11_DELETED_FUNCTIONS +#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827)) +# undef BOOST_NO_CXX11_DELETED_FUNCTIONS +#endif + +// BOOST_NO_CXX11_HDR_INITIALIZER_LIST +#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700)) +# undef BOOST_NO_CXX11_HDR_INITIALIZER_LIST +#endif + +// BOOST_NO_CXX11_SCOPED_ENUMS +#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40501)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700)) +// This is available but broken in earlier Intel releases. +# undef BOOST_NO_CXX11_SCOPED_ENUMS +#endif + +// BOOST_NO_SFINAE_EXPR +#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999)) +# undef BOOST_NO_SFINAE_EXPR +#endif + +// BOOST_NO_CXX11_SFINAE_EXPR +#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && !defined(_MSC_VER) +# undef BOOST_NO_CXX11_SFINAE_EXPR +#endif + +// BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827)) +// This is available in earlier Intel releases, but breaks Multiprecision: +# undef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +#endif + +// BOOST_NO_CXX11_LAMBDAS +#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600)) +# undef BOOST_NO_CXX11_LAMBDAS +#endif + +// BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) +# undef BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +#endif + +// BOOST_NO_CXX11_RANGE_BASED_FOR +#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700)) +# undef BOOST_NO_CXX11_RANGE_BASED_FOR +#endif + +// BOOST_NO_CXX11_RAW_LITERALS +#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827)) +# undef BOOST_NO_CXX11_RAW_LITERALS +#endif + +// BOOST_NO_CXX11_UNICODE_LITERALS +#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999)) +# undef BOOST_NO_CXX11_UNICODE_LITERALS +#endif + +// BOOST_NO_CXX11_NOEXCEPT +#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999)) +// Available in earlier Intel release, but generates errors when used with +// conditional exception specifications, for example in multiprecision: +# undef BOOST_NO_CXX11_NOEXCEPT +#endif + +// BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX +#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999)) +# undef BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX +#endif + +// BOOST_NO_CXX11_USER_DEFINED_LITERALS +#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40700)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730)) +# undef BOOST_NO_CXX11_USER_DEFINED_LITERALS +#endif + +// BOOST_NO_CXX11_ALIGNAS +#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730)) +# undef BOOST_NO_CXX11_ALIGNAS +#endif + +// BOOST_NO_CXX11_TRAILING_RESULT_TYPES +#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827)) +# undef BOOST_NO_CXX11_TRAILING_RESULT_TYPES +#endif + +// BOOST_NO_CXX11_INLINE_NAMESPACES +#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730)) +# undef BOOST_NO_CXX11_INLINE_NAMESPACES +#endif + +// BOOST_NO_CXX11_REF_QUALIFIERS +#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730)) +# undef BOOST_NO_CXX11_REF_QUALIFIERS +#endif + +// BOOST_NO_CXX11_FINAL +#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40700)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700)) +# undef BOOST_NO_CXX11_FINAL +#endif + +#endif // defined(BOOST_INTEL_STDCXX0X) + +// +// Broken in all versions up to 15: +#define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS + +#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION <= 1310) +# define BOOST_NO_CXX11_HDR_FUTURE +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +#endif + +#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION == 1400) +// A regression in Intel's compiler means that seems to be broken in this release as well as : +# define BOOST_NO_CXX11_HDR_FUTURE +# define BOOST_NO_CXX11_HDR_TUPLE +#endif + +#if (BOOST_INTEL_CXX_VERSION < 1200) +// +// fenv.h appears not to work with Intel prior to 12.0: +// +# define BOOST_NO_FENV_H +#endif + +// Intel 13.10 fails to access defaulted functions of a base class declared in private or protected sections, +// producing the following errors: +// error #453: protected function "..." (declared at ...") is not accessible through a "..." pointer or object +#if (BOOST_INTEL_CXX_VERSION <= 1310) +# define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS +#endif + +#if defined(_MSC_VER) && (_MSC_VER >= 1600) +# define BOOST_HAS_STDINT_H +#endif + +#if defined(__CUDACC__) +# if defined(BOOST_GCC_CXX11) +# define BOOST_NVCC_CXX11 +# else +# define BOOST_NVCC_CXX03 +# endif +#endif + +#if defined(__LP64__) && defined(__GNUC__) && (BOOST_INTEL_CXX_VERSION >= 1310) && !defined(BOOST_NVCC_CXX03) +# define BOOST_HAS_INT128 +#endif + +#endif // defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500) && (defined(_MSC_VER) || defined(__GNUC__)) +// +// last known and checked version: +#if (BOOST_INTEL_CXX_VERSION > 1700) +# if defined(BOOST_ASSERT_CONFIG) +# error "Boost.Config is older than your compiler - please check for an updated Boost release." +# elif defined(_MSC_VER) +// +// We don't emit this warning any more, since we have so few +// defect macros set anyway (just the one). +// +//# pragma message("Unknown compiler version - please run the configure tests and report the results") +# endif +#endif + diff --git a/libraries/boost/include/boost/config/compiler/kai.hpp b/libraries/boost/include/boost/config/compiler/kai.hpp new file mode 100644 index 0000000000..960d501c86 --- /dev/null +++ b/libraries/boost/include/boost/config/compiler/kai.hpp @@ -0,0 +1,33 @@ +// (C) Copyright John Maddock 2001. +// (C) Copyright David Abrahams 2002. +// (C) Copyright Aleksey Gurtovoy 2002. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// Kai C++ compiler setup: + +#include + +# if (__KCC_VERSION <= 4001) || !defined(BOOST_STRICT_CONFIG) + // at least on Sun, the contents of is not in namespace std +# define BOOST_NO_STDC_NAMESPACE +# endif + +// see also common_edg.hpp which needs a special check for __KCC +# if !defined(_EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS) +# define BOOST_NO_EXCEPTIONS +# endif + +// +// last known and checked version is 4001: +#if (__KCC_VERSION > 4001) +# if defined(BOOST_ASSERT_CONFIG) +# error "Unknown compiler version - please run the configure tests and report the results" +# endif +#endif + + + diff --git a/libraries/boost/include/boost/config/compiler/metrowerks.hpp b/libraries/boost/include/boost/config/compiler/metrowerks.hpp new file mode 100644 index 0000000000..99ff0f5eea --- /dev/null +++ b/libraries/boost/include/boost/config/compiler/metrowerks.hpp @@ -0,0 +1,192 @@ +// (C) Copyright John Maddock 2001. +// (C) Copyright Darin Adler 2001. +// (C) Copyright Peter Dimov 2001. +// (C) Copyright David Abrahams 2001 - 2002. +// (C) Copyright Beman Dawes 2001 - 2003. +// (C) Copyright Stefan Slapeta 2004. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// Metrowerks C++ compiler setup: + +// locale support is disabled when linking with the dynamic runtime +# ifdef _MSL_NO_LOCALE +# define BOOST_NO_STD_LOCALE +# endif + +# if __MWERKS__ <= 0x2301 // 5.3 +# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING +# define BOOST_NO_POINTER_TO_MEMBER_CONST +# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS +# define BOOST_NO_MEMBER_TEMPLATE_KEYWORD +# endif + +# if __MWERKS__ <= 0x2401 // 6.2 +//# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING +# endif + +# if(__MWERKS__ <= 0x2407) // 7.x +# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS +# define BOOST_NO_UNREACHABLE_RETURN_DETECTION +# endif + +# if(__MWERKS__ <= 0x3003) // 8.x +# define BOOST_NO_SFINAE +# endif + +// the "|| !defined(BOOST_STRICT_CONFIG)" part should apply to the last +// tested version *only*: +# if(__MWERKS__ <= 0x3207) || !defined(BOOST_STRICT_CONFIG) // 9.6 +# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS +# define BOOST_NO_IS_ABSTRACT +# endif + +#if !__option(wchar_type) +# define BOOST_NO_INTRINSIC_WCHAR_T +#endif + +#if !__option(exceptions) && !defined(BOOST_NO_EXCEPTIONS) +# define BOOST_NO_EXCEPTIONS +#endif + +#if (__INTEL__ && _WIN32) || (__POWERPC__ && macintosh) +# if __MWERKS__ == 0x3000 +# define BOOST_COMPILER_VERSION 8.0 +# elif __MWERKS__ == 0x3001 +# define BOOST_COMPILER_VERSION 8.1 +# elif __MWERKS__ == 0x3002 +# define BOOST_COMPILER_VERSION 8.2 +# elif __MWERKS__ == 0x3003 +# define BOOST_COMPILER_VERSION 8.3 +# elif __MWERKS__ == 0x3200 +# define BOOST_COMPILER_VERSION 9.0 +# elif __MWERKS__ == 0x3201 +# define BOOST_COMPILER_VERSION 9.1 +# elif __MWERKS__ == 0x3202 +# define BOOST_COMPILER_VERSION 9.2 +# elif __MWERKS__ == 0x3204 +# define BOOST_COMPILER_VERSION 9.3 +# elif __MWERKS__ == 0x3205 +# define BOOST_COMPILER_VERSION 9.4 +# elif __MWERKS__ == 0x3206 +# define BOOST_COMPILER_VERSION 9.5 +# elif __MWERKS__ == 0x3207 +# define BOOST_COMPILER_VERSION 9.6 +# else +# define BOOST_COMPILER_VERSION __MWERKS__ +# endif +#else +# define BOOST_COMPILER_VERSION __MWERKS__ +#endif + +// +// C++0x features +// +// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG +// +#if __MWERKS__ > 0x3206 && __option(rvalue_refs) +# define BOOST_HAS_RVALUE_REFS +#else +# define BOOST_NO_CXX11_RVALUE_REFERENCES +#endif +#define BOOST_NO_CXX11_AUTO_DECLARATIONS +#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +#define BOOST_NO_CXX11_CHAR16_T +#define BOOST_NO_CXX11_CHAR32_T +#define BOOST_NO_CXX11_CONSTEXPR +#define BOOST_NO_CXX11_DECLTYPE +#define BOOST_NO_CXX11_DECLTYPE_N3276 +#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +#define BOOST_NO_CXX11_DELETED_FUNCTIONS +#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +#define BOOST_NO_CXX11_EXTERN_TEMPLATE +#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +#define BOOST_NO_CXX11_LAMBDAS +#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +#define BOOST_NO_CXX11_NOEXCEPT +#define BOOST_NO_CXX11_NULLPTR +#define BOOST_NO_CXX11_RANGE_BASED_FOR +#define BOOST_NO_CXX11_RAW_LITERALS +#define BOOST_NO_CXX11_SCOPED_ENUMS +#define BOOST_NO_SFINAE_EXPR +#define BOOST_NO_CXX11_SFINAE_EXPR +#define BOOST_NO_CXX11_STATIC_ASSERT +#define BOOST_NO_CXX11_TEMPLATE_ALIASES +#define BOOST_NO_CXX11_UNICODE_LITERALS +#define BOOST_NO_CXX11_VARIADIC_TEMPLATES +#define BOOST_NO_CXX11_VARIADIC_MACROS +#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX +#define BOOST_NO_CXX11_USER_DEFINED_LITERALS +#define BOOST_NO_CXX11_ALIGNAS +#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES +#define BOOST_NO_CXX11_INLINE_NAMESPACES +#define BOOST_NO_CXX11_REF_QUALIFIERS +#define BOOST_NO_CXX11_FINAL +#define BOOST_NO_CXX11_THREAD_LOCAL + +// C++ 14: +#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) +# define BOOST_NO_CXX14_AGGREGATE_NSDMI +#endif +#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304) +# define BOOST_NO_CXX14_BINARY_LITERALS +#endif +#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304) +# define BOOST_NO_CXX14_CONSTEXPR +#endif +#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304) +# define BOOST_NO_CXX14_DECLTYPE_AUTO +#endif +#if (__cplusplus < 201304) // There's no SD6 check for this.... +# define BOOST_NO_CXX14_DIGIT_SEPARATORS +#endif +#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304) +# define BOOST_NO_CXX14_GENERIC_LAMBDAS +#endif +#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304) +# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES +#endif +#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304) +# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION +#endif +#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) +# define BOOST_NO_CXX14_VARIABLE_TEMPLATES +#endif + +// C++17 +#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606) +# define BOOST_NO_CXX17_STRUCTURED_BINDINGS +#endif +#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606) +# define BOOST_NO_CXX17_INLINE_VARIABLES +#endif +#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603) +# define BOOST_NO_CXX17_FOLD_EXPRESSIONS +#endif + +#define BOOST_COMPILER "Metrowerks CodeWarrior C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION) + +// +// versions check: +// we don't support Metrowerks prior to version 5.3: +#if __MWERKS__ < 0x2301 +# error "Compiler not supported or configured - please reconfigure" +#endif +// +// last known and checked version: +#if (__MWERKS__ > 0x3205) +# if defined(BOOST_ASSERT_CONFIG) +# error "Unknown compiler version - please run the configure tests and report the results" +# endif +#endif + + + + + + + diff --git a/libraries/boost/include/boost/config/compiler/mpw.hpp b/libraries/boost/include/boost/config/compiler/mpw.hpp new file mode 100644 index 0000000000..d9544345ac --- /dev/null +++ b/libraries/boost/include/boost/config/compiler/mpw.hpp @@ -0,0 +1,134 @@ +// (C) Copyright John Maddock 2001 - 2002. +// (C) Copyright Aleksey Gurtovoy 2002. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// MPW C++ compilers setup: + +# if defined(__SC__) +# define BOOST_COMPILER "MPW SCpp version " BOOST_STRINGIZE(__SC__) +# elif defined(__MRC__) +# define BOOST_COMPILER "MPW MrCpp version " BOOST_STRINGIZE(__MRC__) +# else +# error "Using MPW compiler configuration by mistake. Please update." +# endif + +// +// MPW 8.90: +// +#if (MPW_CPLUS <= 0x890) || !defined(BOOST_STRICT_CONFIG) +# define BOOST_NO_CV_SPECIALIZATIONS +# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS +# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS +# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION +# define BOOST_NO_INTRINSIC_WCHAR_T +# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +# define BOOST_NO_USING_TEMPLATE + +# define BOOST_NO_CWCHAR +# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS + +# define BOOST_NO_STD_ALLOCATOR /* actually a bug with const reference overloading */ + +#endif + +// +// C++0x features +// +// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG +// +#define BOOST_NO_CXX11_AUTO_DECLARATIONS +#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +#define BOOST_NO_CXX11_CHAR16_T +#define BOOST_NO_CXX11_CHAR32_T +#define BOOST_NO_CXX11_CONSTEXPR +#define BOOST_NO_CXX11_DECLTYPE +#define BOOST_NO_CXX11_DECLTYPE_N3276 +#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +#define BOOST_NO_CXX11_DELETED_FUNCTIONS +#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +#define BOOST_NO_CXX11_EXTERN_TEMPLATE +#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +#define BOOST_NO_CXX11_LAMBDAS +#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +#define BOOST_NO_CXX11_NOEXCEPT +#define BOOST_NO_CXX11_NULLPTR +#define BOOST_NO_CXX11_RANGE_BASED_FOR +#define BOOST_NO_CXX11_RAW_LITERALS +#define BOOST_NO_CXX11_RVALUE_REFERENCES +#define BOOST_NO_CXX11_SCOPED_ENUMS +#define BOOST_NO_SFINAE_EXPR +#define BOOST_NO_CXX11_SFINAE_EXPR +#define BOOST_NO_CXX11_STATIC_ASSERT +#define BOOST_NO_CXX11_TEMPLATE_ALIASES +#define BOOST_NO_CXX11_UNICODE_LITERALS +#define BOOST_NO_CXX11_VARIADIC_TEMPLATES +#define BOOST_NO_CXX11_VARIADIC_MACROS +#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX +#define BOOST_NO_CXX11_USER_DEFINED_LITERALS +#define BOOST_NO_CXX11_ALIGNAS +#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES +#define BOOST_NO_CXX11_INLINE_NAMESPACES +#define BOOST_NO_CXX11_REF_QUALIFIERS +#define BOOST_NO_CXX11_FINAL +#define BOOST_NO_CXX11_THREAD_LOCAL + +// C++ 14: +#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) +# define BOOST_NO_CXX14_AGGREGATE_NSDMI +#endif +#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304) +# define BOOST_NO_CXX14_BINARY_LITERALS +#endif +#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304) +# define BOOST_NO_CXX14_CONSTEXPR +#endif +#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304) +# define BOOST_NO_CXX14_DECLTYPE_AUTO +#endif +#if (__cplusplus < 201304) // There's no SD6 check for this.... +# define BOOST_NO_CXX14_DIGIT_SEPARATORS +#endif +#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304) +# define BOOST_NO_CXX14_GENERIC_LAMBDAS +#endif +#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304) +# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES +#endif +#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304) +# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION +#endif +#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) +# define BOOST_NO_CXX14_VARIABLE_TEMPLATES +#endif + +// C++17 +#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606) +# define BOOST_NO_CXX17_STRUCTURED_BINDINGS +#endif +#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606) +# define BOOST_NO_CXX17_INLINE_VARIABLES +#endif +#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603) +# define BOOST_NO_CXX17_FOLD_EXPRESSIONS +#endif + +// +// versions check: +// we don't support MPW prior to version 8.9: +#if MPW_CPLUS < 0x890 +# error "Compiler not supported or configured - please reconfigure" +#endif +// +// last known and checked version is 0x890: +#if (MPW_CPLUS > 0x890) +# if defined(BOOST_ASSERT_CONFIG) +# error "Unknown compiler version - please run the configure tests and report the results" +# endif +#endif + + diff --git a/libraries/boost/include/boost/config/compiler/nvcc.hpp b/libraries/boost/include/boost/config/compiler/nvcc.hpp new file mode 100644 index 0000000000..f21b9b54fe --- /dev/null +++ b/libraries/boost/include/boost/config/compiler/nvcc.hpp @@ -0,0 +1,58 @@ +// (C) Copyright Eric Jourdanneau, Joel Falcou 2010 +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// NVIDIA CUDA C++ compiler setup + +#ifndef BOOST_COMPILER +# define BOOST_COMPILER "NVIDIA CUDA C++ Compiler" +#endif + +#if defined(__CUDACC_VER_MAJOR__) && defined(__CUDACC_VER_MINOR__) && defined(__CUDACC_VER_BUILD__) +# define BOOST_CUDA_VERSION __CUDACC_VER_MAJOR__ * 1000000 + __CUDACC_VER_MINOR__ * 10000 + __CUDACC_VER_BUILD__ +#else +// We don't really know what the CUDA version is, but it's definitely before 7.5: +# define BOOST_CUDA_VERSION 7000000 +#endif + +// NVIDIA Specific support +// BOOST_GPU_ENABLED : Flag a function or a method as being enabled on the host and device +#define BOOST_GPU_ENABLED __host__ __device__ + +// A bug in version 7.0 of CUDA prevents use of variadic templates in some occasions +// https://svn.boost.org/trac/boost/ticket/11897 +// This is fixed in 7.5. As the following version macro was introduced in 7.5 an existance +// check is enough to detect versions < 7.5 +#if BOOST_CUDA_VERSION < 7050000 +# define BOOST_NO_CXX11_VARIADIC_TEMPLATES +#endif +// The same bug is back again in 8.0: +#if (BOOST_CUDA_VERSION > 8000000) && (BOOST_CUDA_VERSION < 8010000) +# define BOOST_NO_CXX11_VARIADIC_TEMPLATES +#endif +// Most recent CUDA (8.0) has no constexpr support in msvc mode: +#if defined(_MSC_VER) +# define BOOST_NO_CXX11_CONSTEXPR +#endif + +#ifdef __CUDACC__ +// +// When compiing .cu files, there's a bunch of stuff that doesn't work with msvc: +// +#if defined(_MSC_VER) +# define BOOST_NO_CXX14_DIGIT_SEPARATORS +# define BOOST_NO_CXX11_UNICODE_LITERALS +#endif +// +// And this one effects the NVCC front end, +// See https://svn.boost.org/trac/boost/ticket/13049 +// +#if (BOOST_CUDA_VERSION >= 8000000) && (BOOST_CUDA_VERSION < 8010000) +# define BOOST_NO_CXX11_NOEXCEPT +#endif + +#endif + diff --git a/libraries/boost/include/boost/config/compiler/pathscale.hpp b/libraries/boost/include/boost/config/compiler/pathscale.hpp new file mode 100644 index 0000000000..94b3f91d07 --- /dev/null +++ b/libraries/boost/include/boost/config/compiler/pathscale.hpp @@ -0,0 +1,132 @@ +// (C) Copyright Bryce Lelbach 2011 + +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// PathScale EKOPath C++ Compiler + +#ifndef BOOST_COMPILER +# define BOOST_COMPILER "PathScale EKOPath C++ Compiler version " __PATHSCALE__ +#endif + +#if __PATHCC__ >= 6 +// PathCC is based on clang, and supports the __has_*() builtins used +// to detect features in clang.hpp. Since the clang toolset is much +// better maintained, it is more convenient to reuse its definitions. +# include "boost/config/compiler/clang.hpp" +#elif __PATHCC__ >= 4 +# define BOOST_MSVC6_MEMBER_TEMPLATES +# define BOOST_HAS_UNISTD_H +# define BOOST_HAS_STDINT_H +# define BOOST_HAS_SIGACTION +# define BOOST_HAS_SCHED_YIELD +# define BOOST_HAS_THREADS +# define BOOST_HAS_PTHREADS +# define BOOST_HAS_PTHREAD_YIELD +# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE +# define BOOST_HAS_PARTIAL_STD_ALLOCATOR +# define BOOST_HAS_NRVO +# define BOOST_HAS_NL_TYPES_H +# define BOOST_HAS_NANOSLEEP +# define BOOST_HAS_LONG_LONG +# define BOOST_HAS_LOG1P +# define BOOST_HAS_GETTIMEOFDAY +# define BOOST_HAS_EXPM1 +# define BOOST_HAS_DIRENT_H +# define BOOST_HAS_CLOCK_GETTIME +# define BOOST_NO_CXX11_VARIADIC_TEMPLATES +# define BOOST_NO_CXX11_UNICODE_LITERALS +# define BOOST_NO_CXX11_TEMPLATE_ALIASES +# define BOOST_NO_CXX11_STATIC_ASSERT +# define BOOST_NO_SFINAE_EXPR +# define BOOST_NO_CXX11_SFINAE_EXPR +# define BOOST_NO_CXX11_SCOPED_ENUMS +# define BOOST_NO_CXX11_RVALUE_REFERENCES +# define BOOST_NO_CXX11_RANGE_BASED_FOR +# define BOOST_NO_CXX11_RAW_LITERALS +# define BOOST_NO_CXX11_NULLPTR +# define BOOST_NO_CXX11_NUMERIC_LIMITS +# define BOOST_NO_CXX11_NOEXCEPT +# define BOOST_NO_CXX11_LAMBDAS +# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +# define BOOST_NO_MS_INT64_NUMERIC_LIMITS +# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +# define BOOST_NO_CXX11_DELETED_FUNCTIONS +# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +# define BOOST_NO_CXX11_DECLTYPE +# define BOOST_NO_CXX11_DECLTYPE_N3276 +# define BOOST_NO_CXX11_CONSTEXPR +# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION +# define BOOST_NO_CXX11_CHAR32_T +# define BOOST_NO_CXX11_CHAR16_T +# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +# define BOOST_NO_CXX11_AUTO_DECLARATIONS +# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX +# define BOOST_NO_CXX11_HDR_UNORDERED_SET +# define BOOST_NO_CXX11_HDR_UNORDERED_MAP +# define BOOST_NO_CXX11_HDR_TYPEINDEX +# define BOOST_NO_CXX11_HDR_TUPLE +# define BOOST_NO_CXX11_HDR_THREAD +# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR +# define BOOST_NO_CXX11_HDR_REGEX +# define BOOST_NO_CXX11_HDR_RATIO +# define BOOST_NO_CXX11_HDR_RANDOM +# define BOOST_NO_CXX11_HDR_MUTEX +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +# define BOOST_NO_CXX11_HDR_FUTURE +# define BOOST_NO_CXX11_HDR_FORWARD_LIST +# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +# define BOOST_NO_CXX11_HDR_CODECVT +# define BOOST_NO_CXX11_HDR_CHRONO +# define BOOST_NO_CXX11_USER_DEFINED_LITERALS +# define BOOST_NO_CXX11_ALIGNAS +# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES +# define BOOST_NO_CXX11_INLINE_NAMESPACES +# define BOOST_NO_CXX11_REF_QUALIFIERS +# define BOOST_NO_CXX11_FINAL +# define BOOST_NO_CXX11_THREAD_LOCAL + +// C++ 14: +#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) +# define BOOST_NO_CXX14_AGGREGATE_NSDMI +#endif +#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304) +# define BOOST_NO_CXX14_BINARY_LITERALS +#endif +#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304) +# define BOOST_NO_CXX14_CONSTEXPR +#endif +#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304) +# define BOOST_NO_CXX14_DECLTYPE_AUTO +#endif +#if (__cplusplus < 201304) // There's no SD6 check for this.... +# define BOOST_NO_CXX14_DIGIT_SEPARATORS +#endif +#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304) +# define BOOST_NO_CXX14_GENERIC_LAMBDAS +#endif +#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304) +# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES +#endif +#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304) +# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION +#endif +#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) +# define BOOST_NO_CXX14_VARIABLE_TEMPLATES +#endif + +// C++17 +#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606) +# define BOOST_NO_CXX17_STRUCTURED_BINDINGS +#endif +#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606) +# define BOOST_NO_CXX17_INLINE_VARIABLES +#endif +#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603) +# define BOOST_NO_CXX17_FOLD_EXPRESSIONS +#endif +#endif diff --git a/libraries/boost/include/boost/config/compiler/pgi.hpp b/libraries/boost/include/boost/config/compiler/pgi.hpp new file mode 100644 index 0000000000..4e909d8a17 --- /dev/null +++ b/libraries/boost/include/boost/config/compiler/pgi.hpp @@ -0,0 +1,23 @@ +// (C) Copyright Noel Belcourt 2007. +// Copyright 2017, NVIDIA CORPORATION. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// PGI C++ compiler setup: + +#define BOOST_COMPILER_VERSION __PGIC__##__PGIC_MINOR__ +#define BOOST_COMPILER "PGI compiler version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION) + +// PGI is mostly GNU compatible. So start with that. +#include + +// Now adjust for things that are different. + +// __float128 is a typedef, not a distinct type. +#undef BOOST_HAS_FLOAT128 + +// __int128 is not supported. +#undef BOOST_HAS_INT128 diff --git a/libraries/boost/include/boost/config/compiler/sgi_mipspro.hpp b/libraries/boost/include/boost/config/compiler/sgi_mipspro.hpp new file mode 100644 index 0000000000..54433c9978 --- /dev/null +++ b/libraries/boost/include/boost/config/compiler/sgi_mipspro.hpp @@ -0,0 +1,29 @@ +// (C) Copyright John Maddock 2001 - 2002. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// SGI C++ compiler setup: + +#define BOOST_COMPILER "SGI Irix compiler version " BOOST_STRINGIZE(_COMPILER_VERSION) + +#include + +// +// Threading support: +// Turn this on unconditionally here, it will get turned off again later +// if no threading API is detected. +// +#define BOOST_HAS_THREADS +#define BOOST_NO_TWO_PHASE_NAME_LOOKUP + +#undef BOOST_NO_SWPRINTF +#undef BOOST_DEDUCED_TYPENAME + +// +// version check: +// probably nothing to do here? + + diff --git a/libraries/boost/include/boost/config/compiler/sunpro_cc.hpp b/libraries/boost/include/boost/config/compiler/sunpro_cc.hpp new file mode 100644 index 0000000000..54ad77a3c6 --- /dev/null +++ b/libraries/boost/include/boost/config/compiler/sunpro_cc.hpp @@ -0,0 +1,210 @@ +// (C) Copyright John Maddock 2001. +// (C) Copyright Jens Maurer 2001 - 2003. +// (C) Copyright Peter Dimov 2002. +// (C) Copyright Aleksey Gurtovoy 2002 - 2003. +// (C) Copyright David Abrahams 2002. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// Sun C++ compiler setup: + +# if __SUNPRO_CC <= 0x500 +# define BOOST_NO_MEMBER_TEMPLATES +# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING +# endif + +# if (__SUNPRO_CC <= 0x520) + // + // Sunpro 5.2 and earler: + // + // although sunpro 5.2 supports the syntax for + // inline initialization it often gets the value + // wrong, especially where the value is computed + // from other constants (J Maddock 6th May 2001) +# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION + + // Although sunpro 5.2 supports the syntax for + // partial specialization, it often seems to + // bind to the wrong specialization. Better + // to disable it until suppport becomes more stable + // (J Maddock 6th May 2001). +# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +# endif + +# if (__SUNPRO_CC <= 0x530) + // Requesting debug info (-g) with Boost.Python results + // in an internal compiler error for "static const" + // initialized in-class. + // >> Assertion: (../links/dbg_cstabs.cc, line 611) + // while processing ../test.cpp at line 0. + // (Jens Maurer according to Gottfried Ganssauge 04 Mar 2002) +# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION + + // SunPro 5.3 has better support for partial specialization, + // but breaks when compiling std::less > + // (Jens Maurer 4 Nov 2001). + + // std::less specialization fixed as reported by George + // Heintzelman; partial specialization re-enabled + // (Peter Dimov 17 Jan 2002) + +//# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + + // integral constant expressions with 64 bit numbers fail +# define BOOST_NO_INTEGRAL_INT64_T +# endif + +# if (__SUNPRO_CC < 0x570) +# define BOOST_NO_TEMPLATE_TEMPLATES + // see http://lists.boost.org/MailArchives/boost/msg47184.php + // and http://lists.boost.org/MailArchives/boost/msg47220.php +# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION +# define BOOST_NO_SFINAE +# define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS +# endif +# if (__SUNPRO_CC <= 0x580) +# define BOOST_NO_IS_ABSTRACT +# endif + +# if (__SUNPRO_CC <= 0x5100) + // Sun 5.10 may not correctly value-initialize objects of + // some user defined types, as was reported in April 2010 + // (CR 6947016), and confirmed by Steve Clamage. + // (Niels Dekker, LKEB, May 2010). +# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION +# endif + +// +// Dynamic shared object (DSO) and dynamic-link library (DLL) support +// +#if __SUNPRO_CC > 0x500 +# define BOOST_SYMBOL_EXPORT __global +# define BOOST_SYMBOL_IMPORT __global +# define BOOST_SYMBOL_VISIBLE __global +#endif + +#if (__SUNPRO_CC < 0x5130) +// C++03 features in 12.4: +#define BOOST_NO_TWO_PHASE_NAME_LOOKUP +#define BOOST_NO_SFINAE_EXPR +#define BOOST_NO_ADL_BARRIER +#define BOOST_NO_CXX11_VARIADIC_MACROS +#endif + +#if (__SUNPRO_CC < 0x5130) || (__cplusplus < 201100) +// C++11 only featuires in 12.4: +#define BOOST_NO_CXX11_AUTO_DECLARATIONS +#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +#define BOOST_NO_CXX11_CHAR16_T +#define BOOST_NO_CXX11_CHAR32_T +#define BOOST_NO_CXX11_CONSTEXPR +#define BOOST_NO_CXX11_DECLTYPE +#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +#define BOOST_NO_CXX11_DELETED_FUNCTIONS +#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +#define BOOST_NO_CXX11_EXTERN_TEMPLATE +#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +#define BOOST_NO_CXX11_LAMBDAS +#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +#define BOOST_NO_CXX11_NOEXCEPT +#define BOOST_NO_CXX11_NULLPTR +#define BOOST_NO_CXX11_RANGE_BASED_FOR +#define BOOST_NO_CXX11_RAW_LITERALS +#define BOOST_NO_CXX11_RVALUE_REFERENCES +#define BOOST_NO_CXX11_SCOPED_ENUMS +#define BOOST_NO_CXX11_STATIC_ASSERT +#define BOOST_NO_CXX11_TEMPLATE_ALIASES +#define BOOST_NO_CXX11_UNICODE_LITERALS +#define BOOST_NO_CXX11_ALIGNAS +#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES +#define BOOST_NO_CXX11_INLINE_NAMESPACES +#define BOOST_NO_CXX11_FINAL +#endif + +#if (__SUNPRO_CC < 0x5140) || (__cplusplus < 201103) +#define BOOST_NO_CXX11_VARIADIC_TEMPLATES +#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX +#define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS +#define BOOST_NO_CXX11_DECLTYPE_N3276 +#define BOOST_NO_CXX11_USER_DEFINED_LITERALS +#define BOOST_NO_CXX11_REF_QUALIFIERS +#define BOOST_NO_CXX11_THREAD_LOCAL +#endif + +#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION +// +// C++0x features +// +# define BOOST_HAS_LONG_LONG + +#define BOOST_NO_CXX11_SFINAE_EXPR + +// C++ 14: +#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) +# define BOOST_NO_CXX14_AGGREGATE_NSDMI +#endif +#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304) +# define BOOST_NO_CXX14_BINARY_LITERALS +#endif +#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304) +# define BOOST_NO_CXX14_CONSTEXPR +#endif +#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304) || (__cplusplus < 201402L) +# define BOOST_NO_CXX14_DECLTYPE_AUTO +#endif +#if (__cplusplus < 201304) // There's no SD6 check for this.... +# define BOOST_NO_CXX14_DIGIT_SEPARATORS +#endif +#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304) +# define BOOST_NO_CXX14_GENERIC_LAMBDAS +#endif +#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304) +# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES +#endif +#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304) +# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION +#endif +#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) +# define BOOST_NO_CXX14_VARIABLE_TEMPLATES +#endif + +// C++17 +#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606) +# define BOOST_NO_CXX17_STRUCTURED_BINDINGS +#endif +#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606) +# define BOOST_NO_CXX17_INLINE_VARIABLES +#endif +#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603) +# define BOOST_NO_CXX17_FOLD_EXPRESSIONS +#endif + +// Turn on threading support for Solaris 12. +// Ticket #11972 +#if (__SUNPRO_CC >= 0x5140) && defined(__SunOS_5_12) && !defined(BOOST_HAS_THREADS) +# define BOOST_HAS_THREADS +#endif + +// +// Version +// + +#define BOOST_COMPILER "Sun compiler version " BOOST_STRINGIZE(__SUNPRO_CC) + +// +// versions check: +// we don't support sunpro prior to version 4: +#if __SUNPRO_CC < 0x400 +#error "Compiler not supported or configured - please reconfigure" +#endif +// +// last known and checked version: +#if (__SUNPRO_CC > 0x5150) +# if defined(BOOST_ASSERT_CONFIG) +# error "Boost.Config is older than your compiler - please check for an updated Boost release." +# endif +#endif diff --git a/libraries/boost/include/boost/config/compiler/vacpp.hpp b/libraries/boost/include/boost/config/compiler/vacpp.hpp new file mode 100644 index 0000000000..c8400a34d3 --- /dev/null +++ b/libraries/boost/include/boost/config/compiler/vacpp.hpp @@ -0,0 +1,180 @@ +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Toon Knapen 2001 - 2003. +// (C) Copyright Lie-Quan Lee 2001. +// (C) Copyright Markus Schoepflin 2002 - 2003. +// (C) Copyright Beman Dawes 2002 - 2003. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// Visual Age (IBM) C++ compiler setup: + +#if __IBMCPP__ <= 501 +# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS +# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS +#endif + +#if (__IBMCPP__ <= 502) +// Actually the compiler supports inclass member initialization but it +// requires a definition for the class member and it doesn't recognize +// it as an integral constant expression when used as a template argument. +# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION +# define BOOST_NO_INTEGRAL_INT64_T +# define BOOST_NO_MEMBER_TEMPLATE_KEYWORD +#endif + +#if (__IBMCPP__ <= 600) || !defined(BOOST_STRICT_CONFIG) +# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS +#endif + +#if (__IBMCPP__ <= 1110) +// XL C++ V11.1 and earlier versions may not always value-initialize +// a temporary object T(), when T is a non-POD aggregate class type. +// Michael Wong (IBM Canada Ltd) has confirmed this issue and gave it +// high priority. -- Niels Dekker (LKEB), May 2010. +# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION +#endif + +// +// On AIX thread support seems to be indicated by _THREAD_SAFE: +// +#ifdef _THREAD_SAFE +# define BOOST_HAS_THREADS +#endif + +#define BOOST_COMPILER "IBM Visual Age version " BOOST_STRINGIZE(__IBMCPP__) + +// +// versions check: +// we don't support Visual age prior to version 5: +#if __IBMCPP__ < 500 +#error "Compiler not supported or configured - please reconfigure" +#endif +// +// last known and checked version is 1210: +#if (__IBMCPP__ > 1210) +# if defined(BOOST_ASSERT_CONFIG) +# error "Unknown compiler version - please run the configure tests and report the results" +# endif +#endif + +// Some versions of the compiler have issues with default arguments on partial specializations +#if __IBMCPP__ <= 1010 +#define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS +#endif + +// Type aliasing hint. Supported since XL C++ 13.1 +#if (__IBMCPP__ >= 1310) +# define BOOST_MAY_ALIAS __attribute__((__may_alias__)) +#endif + +// +// C++0x features +// +// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG +// +#if ! __IBMCPP_AUTO_TYPEDEDUCTION +# define BOOST_NO_CXX11_AUTO_DECLARATIONS +# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +#endif +#if ! __IBMCPP_UTF_LITERAL__ +# define BOOST_NO_CXX11_CHAR16_T +# define BOOST_NO_CXX11_CHAR32_T +#endif +#if ! __IBMCPP_CONSTEXPR +# define BOOST_NO_CXX11_CONSTEXPR +#endif +#if ! __IBMCPP_DECLTYPE +# define BOOST_NO_CXX11_DECLTYPE +#else +# define BOOST_HAS_DECLTYPE +#endif +#define BOOST_NO_CXX11_DECLTYPE_N3276 +#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +#define BOOST_NO_CXX11_DELETED_FUNCTIONS +#if ! __IBMCPP_EXPLICIT_CONVERSION_OPERATORS +# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +#endif +#if ! __IBMCPP_EXTERN_TEMPLATE +# define BOOST_NO_CXX11_EXTERN_TEMPLATE +#endif +#if ! __IBMCPP_VARIADIC_TEMPLATES +// not enabled separately at this time +# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +#endif +#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +#define BOOST_NO_CXX11_LAMBDAS +#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +#define BOOST_NO_CXX11_NOEXCEPT +#define BOOST_NO_CXX11_NULLPTR +#define BOOST_NO_CXX11_RANGE_BASED_FOR +#define BOOST_NO_CXX11_RAW_LITERALS +#define BOOST_NO_CXX11_USER_DEFINED_LITERALS +#if ! __IBMCPP_RVALUE_REFERENCES +# define BOOST_NO_CXX11_RVALUE_REFERENCES +#endif +#if ! __IBMCPP_SCOPED_ENUM +# define BOOST_NO_CXX11_SCOPED_ENUMS +#endif +#define BOOST_NO_SFINAE_EXPR +#define BOOST_NO_CXX11_SFINAE_EXPR +#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX +#if ! __IBMCPP_STATIC_ASSERT +# define BOOST_NO_CXX11_STATIC_ASSERT +#endif +#define BOOST_NO_CXX11_TEMPLATE_ALIASES +#define BOOST_NO_CXX11_UNICODE_LITERALS +#if ! __IBMCPP_VARIADIC_TEMPLATES +# define BOOST_NO_CXX11_VARIADIC_TEMPLATES +#endif +#if ! __C99_MACRO_WITH_VA_ARGS +# define BOOST_NO_CXX11_VARIADIC_MACROS +#endif +#define BOOST_NO_CXX11_ALIGNAS +#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES +#define BOOST_NO_CXX11_INLINE_NAMESPACES +#define BOOST_NO_CXX11_REF_QUALIFIERS +#define BOOST_NO_CXX11_FINAL +#define BOOST_NO_CXX11_THREAD_LOCAL + +// C++ 14: +#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) +# define BOOST_NO_CXX14_AGGREGATE_NSDMI +#endif +#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304) +# define BOOST_NO_CXX14_BINARY_LITERALS +#endif +#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304) +# define BOOST_NO_CXX14_CONSTEXPR +#endif +#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304) +# define BOOST_NO_CXX14_DECLTYPE_AUTO +#endif +#if (__cplusplus < 201304) // There's no SD6 check for this.... +# define BOOST_NO_CXX14_DIGIT_SEPARATORS +#endif +#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304) +# define BOOST_NO_CXX14_GENERIC_LAMBDAS +#endif +#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304) +# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES +#endif +#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304) +# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION +#endif +#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) +# define BOOST_NO_CXX14_VARIABLE_TEMPLATES +#endif + +// C++17 +#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606) +# define BOOST_NO_CXX17_STRUCTURED_BINDINGS +#endif +#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606) +# define BOOST_NO_CXX17_INLINE_VARIABLES +#endif +#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603) +# define BOOST_NO_CXX17_FOLD_EXPRESSIONS +#endif diff --git a/libraries/boost/include/boost/config/compiler/visualc.hpp b/libraries/boost/include/boost/config/compiler/visualc.hpp new file mode 100644 index 0000000000..c533c50dfc --- /dev/null +++ b/libraries/boost/include/boost/config/compiler/visualc.hpp @@ -0,0 +1,354 @@ +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Darin Adler 2001 - 2002. +// (C) Copyright Peter Dimov 2001. +// (C) Copyright Aleksey Gurtovoy 2002. +// (C) Copyright David Abrahams 2002 - 2003. +// (C) Copyright Beman Dawes 2002 - 2003. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. +// +// Microsoft Visual C++ compiler setup: +// +// We need to be careful with the checks in this file, as contrary +// to popular belief there are versions with _MSC_VER with the final +// digit non-zero (mainly the MIPS cross compiler). +// +// So we either test _MSC_VER >= XXXX or else _MSC_VER < XXXX. +// No other comparisons (==, >, or <=) are safe. +// + +#define BOOST_MSVC _MSC_VER + +// +// Helper macro BOOST_MSVC_FULL_VER for use in Boost code: +// +#if _MSC_FULL_VER > 100000000 +# define BOOST_MSVC_FULL_VER _MSC_FULL_VER +#else +# define BOOST_MSVC_FULL_VER (_MSC_FULL_VER * 10) +#endif + +// Attempt to suppress VC6 warnings about the length of decorated names (obsolete): +#pragma warning( disable : 4503 ) // warning: decorated name length exceeded + +#define BOOST_HAS_PRAGMA_ONCE + +// +// versions check: +// we don't support Visual C++ prior to version 7.1: +#if _MSC_VER < 1310 +# error "Compiler not supported or configured - please reconfigure" +#endif + +#if _MSC_FULL_VER < 180020827 +# define BOOST_NO_FENV_H +#endif + +#if _MSC_VER < 1400 +// although a conforming signature for swprint exists in VC7.1 +// it appears not to actually work: +# define BOOST_NO_SWPRINTF +// Our extern template tests also fail for this compiler: +# define BOOST_NO_CXX11_EXTERN_TEMPLATE +// Variadic macros do not exist for VC7.1 and lower +# define BOOST_NO_CXX11_VARIADIC_MACROS +# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +#endif + +#if _MSC_VER < 1500 // 140X == VC++ 8.0 +# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS +#endif + +#if _MSC_VER < 1600 // 150X == VC++ 9.0 + // A bug in VC9: +# define BOOST_NO_ADL_BARRIER +#endif + + +#ifndef _NATIVE_WCHAR_T_DEFINED +# define BOOST_NO_INTRINSIC_WCHAR_T +#endif + +// +// check for exception handling support: +#if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS) +# define BOOST_NO_EXCEPTIONS +#endif + +// +// __int64 support: +// +#define BOOST_HAS_MS_INT64 +#if defined(_MSC_EXTENSIONS) || (_MSC_VER >= 1400) +# define BOOST_HAS_LONG_LONG +#else +# define BOOST_NO_LONG_LONG +#endif +#if (_MSC_VER >= 1400) && !defined(_DEBUG) +# define BOOST_HAS_NRVO +#endif +#if _MSC_VER >= 1600 // 160X == VC++ 10.0 +# define BOOST_HAS_PRAGMA_DETECT_MISMATCH +#endif +// +// disable Win32 API's if compiler extensions are +// turned off: +// +#if !defined(_MSC_EXTENSIONS) && !defined(BOOST_DISABLE_WIN32) +# define BOOST_DISABLE_WIN32 +#endif +#if !defined(_CPPRTTI) && !defined(BOOST_NO_RTTI) +# define BOOST_NO_RTTI +#endif + +// +// TR1 features: +// +#if (_MSC_VER >= 1700) && defined(_HAS_CXX17) && (_HAS_CXX17 > 0) +// # define BOOST_HAS_TR1_HASH // don't know if this is true yet. +// # define BOOST_HAS_TR1_TYPE_TRAITS // don't know if this is true yet. +# define BOOST_HAS_TR1_UNORDERED_MAP +# define BOOST_HAS_TR1_UNORDERED_SET +#endif + +// +// C++0x features +// +// See above for BOOST_NO_LONG_LONG + +// C++ features supported by VC++ 10 (aka 2010) +// +#if _MSC_VER < 1600 +# define BOOST_NO_CXX11_AUTO_DECLARATIONS +# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +# define BOOST_NO_CXX11_LAMBDAS +# define BOOST_NO_CXX11_RVALUE_REFERENCES +# define BOOST_NO_CXX11_STATIC_ASSERT +# define BOOST_NO_CXX11_NULLPTR +# define BOOST_NO_CXX11_DECLTYPE +#endif // _MSC_VER < 1600 + +#if _MSC_VER >= 1600 +# define BOOST_HAS_STDINT_H +#endif + +// C++11 features supported by VC++ 11 (aka 2012) +// +#if _MSC_VER < 1700 +# define BOOST_NO_CXX11_FINAL +# define BOOST_NO_CXX11_RANGE_BASED_FOR +# define BOOST_NO_CXX11_SCOPED_ENUMS +#endif // _MSC_VER < 1700 + +// C++11 features supported by VC++ 12 (aka 2013). +// +#if _MSC_FULL_VER < 180020827 +# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +# define BOOST_NO_CXX11_DELETED_FUNCTIONS +# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +# define BOOST_NO_CXX11_RAW_LITERALS +# define BOOST_NO_CXX11_TEMPLATE_ALIASES +# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES +# define BOOST_NO_CXX11_VARIADIC_TEMPLATES +# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX +# define BOOST_NO_CXX11_DECLTYPE_N3276 +#endif + +#if _MSC_FULL_VER >= 180020827 +#define BOOST_HAS_EXPM1 +#define BOOST_HAS_LOG1P +#endif + +// C++11 features supported by VC++ 14 (aka 2015) +// +#if (_MSC_FULL_VER < 190023026) +# define BOOST_NO_CXX11_NOEXCEPT +# define BOOST_NO_CXX11_DEFAULTED_MOVES +# define BOOST_NO_CXX11_REF_QUALIFIERS +# define BOOST_NO_CXX11_USER_DEFINED_LITERALS +# define BOOST_NO_CXX11_ALIGNAS +# define BOOST_NO_CXX11_INLINE_NAMESPACES +# define BOOST_NO_CXX11_CHAR16_T +# define BOOST_NO_CXX11_CHAR32_T +# define BOOST_NO_CXX11_UNICODE_LITERALS +# define BOOST_NO_CXX14_DECLTYPE_AUTO +# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES +# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION +# define BOOST_NO_CXX14_BINARY_LITERALS +# define BOOST_NO_CXX14_GENERIC_LAMBDAS +# define BOOST_NO_CXX14_DIGIT_SEPARATORS +# define BOOST_NO_CXX11_THREAD_LOCAL +#endif +// C++11 features supported by VC++ 14 update 3 (aka 2015) +// +#if (_MSC_FULL_VER < 190024210) +# define BOOST_NO_CXX14_VARIABLE_TEMPLATES +# define BOOST_NO_SFINAE_EXPR +# define BOOST_NO_CXX11_CONSTEXPR +#endif + +// C++14 features supported by VC++ 14.1 (Visual Studio 2017) +// +#if (_MSC_VER < 1910) +# define BOOST_NO_CXX14_AGGREGATE_NSDMI +#endif + +// C++17 features supported by VC++ 14.1 (Visual Studio 2017) Update 3 +// +#if (_MSC_VER < 1911) || (_MSVC_LANG < 201703) +# define BOOST_NO_CXX17_STRUCTURED_BINDINGS +#endif + +// MSVC including version 14 has not yet completely +// implemented value-initialization, as is reported: +// "VC++ does not value-initialize members of derived classes without +// user-declared constructor", reported in 2009 by Sylvester Hesp: +// https://connect.microsoft.com/VisualStudio/feedback/details/484295 +// "Presence of copy constructor breaks member class initialization", +// reported in 2009 by Alex Vakulenko: +// https://connect.microsoft.com/VisualStudio/feedback/details/499606 +// "Value-initialization in new-expression", reported in 2005 by +// Pavel Kuznetsov (MetaCommunications Engineering): +// https://connect.microsoft.com/VisualStudio/feedback/details/100744 +// Reported again by John Maddock in 2015 for VC14: +// https://connect.microsoft.com/VisualStudio/feedback/details/1582233/c-subobjects-still-not-value-initialized-correctly +// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues +// (Niels Dekker, LKEB, May 2010) +// Still present in VC15.5, Dec 2017. +#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION +// +// C++ 11: +// +// This is supported with /permissive- for 15.5 onwards, unfortunately we appear to have no way to tell +// if this is in effect or not, in any case nothing in Boost is currently using this, so we'll just go +// on defining it for now: +// +# define BOOST_NO_TWO_PHASE_NAME_LOOKUP + +#if (_MSC_VER < 1912) || (_MSVC_LANG < 201402) +// Supported from msvc-15.5 onwards: +#define BOOST_NO_CXX11_SFINAE_EXPR +#endif +// C++ 14: +// Still gives internal compiler error for msvc-15.5: +# define BOOST_NO_CXX14_CONSTEXPR +// C++ 17: +#if (_MSC_VER < 1912) || (_MSVC_LANG < 201703) +#define BOOST_NO_CXX17_INLINE_VARIABLES +#define BOOST_NO_CXX17_FOLD_EXPRESSIONS +#endif + +// +// Things that don't work in clr mode: +// +#ifdef _M_CEE +#ifndef BOOST_NO_CXX11_THREAD_LOCAL +# define BOOST_NO_CXX11_THREAD_LOCAL +#endif +#ifndef BOOST_NO_SFINAE_EXPR +# define BOOST_NO_SFINAE_EXPR +#endif +#ifndef BOOST_NO_CXX11_REF_QUALIFIERS +# define BOOST_NO_CXX11_REF_QUALIFIERS +#endif +#endif +#ifdef _M_CEE_PURE +#ifndef BOOST_NO_CXX11_CONSTEXPR +# define BOOST_NO_CXX11_CONSTEXPR +#endif +#endif + +// +// prefix and suffix headers: +// +#ifndef BOOST_ABI_PREFIX +# define BOOST_ABI_PREFIX "boost/config/abi/msvc_prefix.hpp" +#endif +#ifndef BOOST_ABI_SUFFIX +# define BOOST_ABI_SUFFIX "boost/config/abi/msvc_suffix.hpp" +#endif + +#ifndef BOOST_COMPILER +// TODO: +// these things are mostly bogus. 1200 means version 12.0 of the compiler. The +// artificial versions assigned to them only refer to the versions of some IDE +// these compilers have been shipped with, and even that is not all of it. Some +// were shipped with freely downloadable SDKs, others as crosscompilers in eVC. +// IOW, you can't use these 'versions' in any sensible way. Sorry. +# if defined(UNDER_CE) +# if _MSC_VER < 1400 + // Note: I'm not aware of any CE compiler with version 13xx +# if defined(BOOST_ASSERT_CONFIG) +# error "Unknown EVC++ compiler version - please run the configure tests and report the results" +# else +# pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results") +# endif +# elif _MSC_VER < 1500 +# define BOOST_COMPILER_VERSION evc8 +# elif _MSC_VER < 1600 +# define BOOST_COMPILER_VERSION evc9 +# elif _MSC_VER < 1700 +# define BOOST_COMPILER_VERSION evc10 +# elif _MSC_VER < 1800 +# define BOOST_COMPILER_VERSION evc11 +# elif _MSC_VER < 1900 +# define BOOST_COMPILER_VERSION evc12 +# elif _MSC_VER < 2000 +# define BOOST_COMPILER_VERSION evc14 +# else +# if defined(BOOST_ASSERT_CONFIG) +# error "Unknown EVC++ compiler version - please run the configure tests and report the results" +# else +# pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results") +# endif +# endif +# else +# if _MSC_VER < 1200 + // Note: Versions up to 7.0 aren't supported. +# define BOOST_COMPILER_VERSION 5.0 +# elif _MSC_VER < 1300 +# define BOOST_COMPILER_VERSION 6.0 +# elif _MSC_VER < 1310 +# define BOOST_COMPILER_VERSION 7.0 +# elif _MSC_VER < 1400 +# define BOOST_COMPILER_VERSION 7.1 +# elif _MSC_VER < 1500 +# define BOOST_COMPILER_VERSION 8.0 +# elif _MSC_VER < 1600 +# define BOOST_COMPILER_VERSION 9.0 +# elif _MSC_VER < 1700 +# define BOOST_COMPILER_VERSION 10.0 +# elif _MSC_VER < 1800 +# define BOOST_COMPILER_VERSION 11.0 +# elif _MSC_VER < 1900 +# define BOOST_COMPILER_VERSION 12.0 +# elif _MSC_VER < 1910 +# define BOOST_COMPILER_VERSION 14.0 +# elif _MSC_VER < 1920 +# define BOOST_COMPILER_VERSION 14.1 +# else +# define BOOST_COMPILER_VERSION _MSC_VER +# endif +# endif + +# define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION) +#endif + +#include + +// +// last known and checked version is 19.12.25830.2 (VC++ 2017.3): +#if (_MSC_VER > 1912) +# if defined(BOOST_ASSERT_CONFIG) +# error "Boost.Config is older than your current compiler version." +# elif !defined(BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE) + // + // Disabled as of March 2018 - the pace of VS releases is hard to keep up with + // and in any case, we have relatively few defect macros defined now. + // BOOST_PRAGMA_MESSAGE("Info: Boost.Config is older than your compiler version - probably nothing bad will happen - but you may wish to look for an updated Boost version. Define BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE to suppress this message.") +# endif +#endif diff --git a/libraries/boost/include/boost/config/compiler/xlcpp.hpp b/libraries/boost/include/boost/config/compiler/xlcpp.hpp new file mode 100644 index 0000000000..a4c66e402c --- /dev/null +++ b/libraries/boost/include/boost/config/compiler/xlcpp.hpp @@ -0,0 +1,281 @@ +// (C) Copyright Douglas Gregor 2010 +// +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// compiler setup for IBM XL C/C++ for Linux (Little Endian) based on clang. + +#define BOOST_HAS_PRAGMA_ONCE + +// Detecting `-fms-extension` compiler flag assuming that _MSC_VER defined when that flag is used. +#if defined (_MSC_VER) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4)) +# define BOOST_HAS_PRAGMA_DETECT_MISMATCH +#endif + +// When compiling with clang before __has_extension was defined, +// even if one writes 'defined(__has_extension) && __has_extension(xxx)', +// clang reports a compiler error. So the only workaround found is: + +#ifndef __has_extension +#define __has_extension __has_feature +#endif + +#ifndef __has_cpp_attribute +#define __has_cpp_attribute(x) 0 +#endif + +#if !__has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS) +# define BOOST_NO_EXCEPTIONS +#endif + +#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_RTTI) +# define BOOST_NO_RTTI +#endif + +#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_TYPEID) +# define BOOST_NO_TYPEID +#endif + +#if defined(__int64) && !defined(__GNUC__) +# define BOOST_HAS_MS_INT64 +#endif + +#define BOOST_HAS_NRVO + +// Branch prediction hints +#if defined(__has_builtin) +#if __has_builtin(__builtin_expect) +#define BOOST_LIKELY(x) __builtin_expect(x, 1) +#define BOOST_UNLIKELY(x) __builtin_expect(x, 0) +#endif +#endif + +// Clang supports "long long" in all compilation modes. +#define BOOST_HAS_LONG_LONG + +// +// Dynamic shared object (DSO) and dynamic-link library (DLL) support +// +#if !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32) +# define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default"))) +# define BOOST_SYMBOL_IMPORT +# define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default"))) +#endif + +// +// The BOOST_FALLTHROUGH macro can be used to annotate implicit fall-through +// between switch labels. +// +#if __cplusplus >= 201103L && defined(__has_warning) +# if __has_feature(cxx_attributes) && __has_warning("-Wimplicit-fallthrough") +# define BOOST_FALLTHROUGH [[clang::fallthrough]] +# endif +#endif + +#if !__has_feature(cxx_auto_type) +# define BOOST_NO_CXX11_AUTO_DECLARATIONS +# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +#endif + +// +// Currently clang on Windows using VC++ RTL does not support C++11's char16_t or char32_t +// +#if defined(_MSC_VER) || !(defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L) +# define BOOST_NO_CXX11_CHAR16_T +# define BOOST_NO_CXX11_CHAR32_T +#endif + +#if !__has_feature(cxx_constexpr) +# define BOOST_NO_CXX11_CONSTEXPR +#endif + +#if !__has_feature(cxx_decltype) +# define BOOST_NO_CXX11_DECLTYPE +#endif + +#if !__has_feature(cxx_decltype_incomplete_return_types) +# define BOOST_NO_CXX11_DECLTYPE_N3276 +#endif + +#if !__has_feature(cxx_defaulted_functions) +# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +#endif + +#if !__has_feature(cxx_deleted_functions) +# define BOOST_NO_CXX11_DELETED_FUNCTIONS +#endif + +#if !__has_feature(cxx_explicit_conversions) +# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +#endif + +#if !__has_feature(cxx_default_function_template_args) +# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +#endif + +#if !__has_feature(cxx_generalized_initializers) +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +#endif + +#if !__has_feature(cxx_lambdas) +# define BOOST_NO_CXX11_LAMBDAS +#endif + +#if !__has_feature(cxx_local_type_template_args) +# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +#endif + +#if !__has_feature(cxx_noexcept) +# define BOOST_NO_CXX11_NOEXCEPT +#endif + +#if !__has_feature(cxx_nullptr) +# define BOOST_NO_CXX11_NULLPTR +#endif + +#if !__has_feature(cxx_range_for) +# define BOOST_NO_CXX11_RANGE_BASED_FOR +#endif + +#if !__has_feature(cxx_raw_string_literals) +# define BOOST_NO_CXX11_RAW_LITERALS +#endif + +#if !__has_feature(cxx_reference_qualified_functions) +# define BOOST_NO_CXX11_REF_QUALIFIERS +#endif + +#if !__has_feature(cxx_generalized_initializers) +# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX +#endif + +#if !__has_feature(cxx_rvalue_references) +# define BOOST_NO_CXX11_RVALUE_REFERENCES +#endif + +#if !__has_feature(cxx_strong_enums) +# define BOOST_NO_CXX11_SCOPED_ENUMS +#endif + +#if !__has_feature(cxx_static_assert) +# define BOOST_NO_CXX11_STATIC_ASSERT +#endif + +#if !__has_feature(cxx_alias_templates) +# define BOOST_NO_CXX11_TEMPLATE_ALIASES +#endif + +#if !__has_feature(cxx_unicode_literals) +# define BOOST_NO_CXX11_UNICODE_LITERALS +#endif + +#if !__has_feature(cxx_variadic_templates) +# define BOOST_NO_CXX11_VARIADIC_TEMPLATES +#endif + +#if !__has_feature(cxx_user_literals) +# define BOOST_NO_CXX11_USER_DEFINED_LITERALS +#endif + +#if !__has_feature(cxx_alignas) +# define BOOST_NO_CXX11_ALIGNAS +#endif + +#if !__has_feature(cxx_trailing_return) +# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES +#endif + +#if !__has_feature(cxx_inline_namespaces) +# define BOOST_NO_CXX11_INLINE_NAMESPACES +#endif + +#if !__has_feature(cxx_override_control) +# define BOOST_NO_CXX11_FINAL +#endif + +#if !(__has_feature(__cxx_binary_literals__) || __has_extension(__cxx_binary_literals__)) +# define BOOST_NO_CXX14_BINARY_LITERALS +#endif + +#if !__has_feature(__cxx_decltype_auto__) +# define BOOST_NO_CXX14_DECLTYPE_AUTO +#endif + +#if !__has_feature(__cxx_aggregate_nsdmi__) +# define BOOST_NO_CXX14_AGGREGATE_NSDMI +#endif + +#if !__has_feature(__cxx_init_captures__) +# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES +#endif + +#if !__has_feature(__cxx_generic_lambdas__) +# define BOOST_NO_CXX14_GENERIC_LAMBDAS +#endif + +// clang < 3.5 has a defect with dependent type, like following. +// +// template +// constexpr typename enable_if >::type foo(T &) +// { } // error: no return statement in constexpr function +// +// This issue also affects C++11 mode, but C++11 constexpr requires return stmt. +// Therefore we don't care such case. +// +// Note that we can't check Clang version directly as the numbering system changes depending who's +// creating the Clang release (see https://github.com/boostorg/config/pull/39#issuecomment-59927873) +// so instead verify that we have a feature that was introduced at the same time as working C++14 +// constexpr (generic lambda's in this case): +// +#if !__has_feature(__cxx_generic_lambdas__) || !__has_feature(__cxx_relaxed_constexpr__) +# define BOOST_NO_CXX14_CONSTEXPR +#endif + +#if !__has_feature(__cxx_return_type_deduction__) +# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION +#endif + +#if !__has_feature(__cxx_variable_templates__) +# define BOOST_NO_CXX14_VARIABLE_TEMPLATES +#endif + +#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606) +# define BOOST_NO_CXX17_STRUCTURED_BINDINGS +#endif + +// Clang 3.9+ in c++1z +#if !__has_cpp_attribute(fallthrough) || __cplusplus < 201406L +# define BOOST_NO_CXX17_INLINE_VARIABLES +# define BOOST_NO_CXX17_FOLD_EXPRESSIONS +#endif + +#if !__has_feature(cxx_thread_local) +# define BOOST_NO_CXX11_THREAD_LOCAL +#endif + +#if __cplusplus < 201400 +// All versions with __cplusplus above this value seem to support this: +# define BOOST_NO_CXX14_DIGIT_SEPARATORS +#endif + + +// Unused attribute: +#if defined(__GNUC__) && (__GNUC__ >= 4) +# define BOOST_ATTRIBUTE_UNUSED __attribute__((unused)) +#endif + +// Type aliasing hint. +#if __has_attribute(__may_alias__) +# define BOOST_MAY_ALIAS __attribute__((__may_alias__)) +#endif + +#ifndef BOOST_COMPILER +# define BOOST_COMPILER "Clang version " __clang_version__ +#endif + +// Macro used to identify the Clang compiler. +#define BOOST_CLANG 1 + diff --git a/libraries/boost/include/boost/config/compiler/xlcpp_zos.hpp b/libraries/boost/include/boost/config/compiler/xlcpp_zos.hpp new file mode 100644 index 0000000000..bc785b8ab0 --- /dev/null +++ b/libraries/boost/include/boost/config/compiler/xlcpp_zos.hpp @@ -0,0 +1,169 @@ +// Copyright (c) 2017 Dynatrace +// +// 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 + +// See http://www.boost.org for most recent version. + +// Compiler setup for IBM z/OS XL C/C++ compiler. + +// Oldest compiler version currently supported is 2.1 (V2R1) +#if !defined(__IBMCPP__) || !defined(__COMPILER_VER__) || __COMPILER_VER__ < 0x42010000 +# error "Compiler not supported or configured - please reconfigure" +#endif + +#if __COMPILER_VER__ > 0x42010000 +# if defined(BOOST_ASSERT_CONFIG) +# error "Unknown compiler version - please run the configure tests and report the results" +# endif +#endif + +#define BOOST_COMPILER "IBM z/OS XL C/C++ version " BOOST_STRINGIZE(__COMPILER_VER__) +#define BOOST_XLCPP_ZOS __COMPILER_VER__ + +// ------------------------------------- + +#include // For __UU, __C99, __TR1, ... + +#if !defined(__IBMCPP_DEFAULTED_AND_DELETED_FUNCTIONS) +# define BOOST_NO_CXX11_DELETED_FUNCTIONS +# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +# define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS +#endif + +// ------------------------------------- + +#if defined(__UU) || defined(__C99) || defined(__TR1) +# define BOOST_HAS_LOG1P +# define BOOST_HAS_EXPM1 +#endif + +#if defined(__C99) || defined(__TR1) +# define BOOST_HAS_STDINT_H +#else +# define BOOST_NO_FENV_H +#endif + +// ------------------------------------- + +#define BOOST_HAS_NRVO + +#if !defined(__RTTI_ALL__) +# define BOOST_NO_RTTI +#endif + +#if !defined(_CPPUNWIND) && !defined(__EXCEPTIONS) +# define BOOST_NO_EXCEPTIONS +#endif + +#if defined(_LONG_LONG) || defined(__IBMCPP_C99_LONG_LONG) || defined(__LL) +# define BOOST_HAS_LONG_LONG +#else +# define BOOST_NO_LONG_LONG +#endif + +#if defined(_LONG_LONG) || defined(__IBMCPP_C99_LONG_LONG) || defined(__LL) || defined(_LP64) +# define BOOST_HAS_MS_INT64 +#endif + +#define BOOST_NO_SFINAE_EXPR +#define BOOST_NO_CXX11_SFINAE_EXPR + +#if defined(__IBMCPP_VARIADIC_TEMPLATES) +# define BOOST_HAS_VARIADIC_TMPL +#else +# define BOOST_NO_CXX11_VARIADIC_TEMPLATES +# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +#endif + +#if defined(__IBMCPP_STATIC_ASSERT) +# define BOOST_HAS_STATIC_ASSERT +#else +# define BOOST_NO_CXX11_STATIC_ASSERT +#endif + +#if defined(__IBMCPP_RVALUE_REFERENCES) +# define BOOST_HAS_RVALUE_REFS +#else +# define BOOST_NO_CXX11_RVALUE_REFERENCES +#endif + +#if !defined(__IBMCPP_SCOPED_ENUM) +# define BOOST_NO_CXX11_SCOPED_ENUMS +#endif + +#define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS +#define BOOST_NO_CXX11_TEMPLATE_ALIASES +#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS + +#if !defined(__IBMCPP_EXPLICIT_CONVERSION_OPERATORS) +# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +#endif + +#if !defined(__IBMCPP_DECLTYPE) +# define BOOST_NO_CXX11_DECLTYPE +#else +# define BOOST_HAS_DECLTYPE +#endif +#define BOOST_NO_CXX11_DECLTYPE_N3276 + +#if !defined(__IBMCPP_INLINE_NAMESPACE) +# define BOOST_NO_CXX11_INLINE_NAMESPACES +#endif + +#if !defined(__IBMCPP_AUTO_TYPEDEDUCTION) +# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +# define BOOST_NO_CXX11_AUTO_DECLARATIONS +# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES +#endif + +#if !defined(__IBM_CHAR32_T__) +# define BOOST_NO_CXX11_CHAR32_T +#endif +#if !defined(__IBM_CHAR16_T__) +# define BOOST_NO_CXX11_CHAR16_T +#endif + +#if !defined(__IBMCPP_CONSTEXPR) +# define BOOST_NO_CXX11_CONSTEXPR +#endif + +#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX +#define BOOST_NO_CXX11_UNICODE_LITERALS +#define BOOST_NO_CXX11_RAW_LITERALS +#define BOOST_NO_CXX11_RANGE_BASED_FOR +#define BOOST_NO_CXX11_NULLPTR +#define BOOST_NO_CXX11_NOEXCEPT +#define BOOST_NO_CXX11_LAMBDAS +#define BOOST_NO_CXX11_USER_DEFINED_LITERALS +#define BOOST_NO_CXX11_THREAD_LOCAL +#define BOOST_NO_CXX11_REF_QUALIFIERS +#define BOOST_NO_CXX11_FINAL +#define BOOST_NO_CXX11_ALIGNAS +#define BOOST_NO_CXX14_VARIABLE_TEMPLATES +#define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION +#define BOOST_NO_CXX14_AGGREGATE_NSDMI +#define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES +#define BOOST_NO_CXX14_GENERIC_LAMBDAS +#define BOOST_NO_CXX14_DIGIT_SEPARATORS +#define BOOST_NO_CXX14_DECLTYPE_AUTO +#define BOOST_NO_CXX14_CONSTEXPR +#define BOOST_NO_CXX14_BINARY_LITERALS +#define BOOST_NO_CXX17_STRUCTURED_BINDINGS +#define BOOST_NO_CXX17_INLINE_VARIABLES +#define BOOST_NO_CXX17_FOLD_EXPRESSIONS + +// ------------------------------------- + +#if defined(__IBM_ATTRIBUTES) +# define BOOST_FORCEINLINE inline __attribute__ ((__always_inline__)) +# define BOOST_NOINLINE __attribute__ ((__noinline__)) +# define BOOST_MAY_ALIAS __attribute__((__may_alias__)) +// No BOOST_ALIGNMENT - explicit alignment support is broken (V2R1). +#endif + +extern "builtin" long __builtin_expect(long, long); + +#define BOOST_LIKELY(x) __builtin_expect((x) && true, 1) +#define BOOST_UNLIKELY(x) __builtin_expect((x) && true, 0) diff --git a/libraries/boost/include/boost/config/detail/posix_features.hpp b/libraries/boost/include/boost/config/detail/posix_features.hpp new file mode 100644 index 0000000000..d12954797f --- /dev/null +++ b/libraries/boost/include/boost/config/detail/posix_features.hpp @@ -0,0 +1,95 @@ +// (C) Copyright John Maddock 2001 - 2003. +// Use, modification and distribution are subject to 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) + + +// See http://www.boost.org for most recent version. + +// All POSIX feature tests go in this file, +// Note that we test _POSIX_C_SOURCE and _XOPEN_SOURCE as well +// _POSIX_VERSION and _XOPEN_VERSION: on some systems POSIX API's +// may be present but none-functional unless _POSIX_C_SOURCE and +// _XOPEN_SOURCE have been defined to the right value (it's up +// to the user to do this *before* including any header, although +// in most cases the compiler will do this for you). + +# if defined(BOOST_HAS_UNISTD_H) +# include + + // XOpen has , but is this the correct version check? +# if defined(_XOPEN_VERSION) && (_XOPEN_VERSION >= 3) +# define BOOST_HAS_NL_TYPES_H +# endif + + // POSIX version 6 requires +# if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 200100) +# define BOOST_HAS_STDINT_H +# endif + + // POSIX version 2 requires +# if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 199009L) +# define BOOST_HAS_DIRENT_H +# endif + + // POSIX version 3 requires to have sigaction: +# if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 199506L) +# define BOOST_HAS_SIGACTION +# endif + // POSIX defines _POSIX_THREADS > 0 for pthread support, + // however some platforms define _POSIX_THREADS without + // a value, hence the (_POSIX_THREADS+0 >= 0) check. + // Strictly speaking this may catch platforms with a + // non-functioning stub , but such occurrences should + // occur very rarely if at all. +# if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS) && !defined(BOOST_HAS_MPTASKS) +# define BOOST_HAS_PTHREADS +# endif + + // BOOST_HAS_NANOSLEEP: + // This is predicated on _POSIX_TIMERS or _XOPEN_REALTIME: +# if (defined(_POSIX_TIMERS) && (_POSIX_TIMERS+0 >= 0)) \ + || (defined(_XOPEN_REALTIME) && (_XOPEN_REALTIME+0 >= 0)) +# define BOOST_HAS_NANOSLEEP +# endif + + // BOOST_HAS_CLOCK_GETTIME: + // This is predicated on _POSIX_TIMERS (also on _XOPEN_REALTIME + // but at least one platform - linux - defines that flag without + // defining clock_gettime): +# if (defined(_POSIX_TIMERS) && (_POSIX_TIMERS+0 >= 0)) +# define BOOST_HAS_CLOCK_GETTIME +# endif + + // BOOST_HAS_SCHED_YIELD: + // This is predicated on _POSIX_PRIORITY_SCHEDULING or + // on _POSIX_THREAD_PRIORITY_SCHEDULING or on _XOPEN_REALTIME. +# if defined(_POSIX_PRIORITY_SCHEDULING) && (_POSIX_PRIORITY_SCHEDULING+0 > 0)\ + || (defined(_POSIX_THREAD_PRIORITY_SCHEDULING) && (_POSIX_THREAD_PRIORITY_SCHEDULING+0 > 0))\ + || (defined(_XOPEN_REALTIME) && (_XOPEN_REALTIME+0 >= 0)) +# define BOOST_HAS_SCHED_YIELD +# endif + + // BOOST_HAS_GETTIMEOFDAY: + // BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE: + // These are predicated on _XOPEN_VERSION, and appears to be first released + // in issue 4, version 2 (_XOPEN_VERSION > 500). + // Likewise for the functions log1p and expm1. +# if defined(_XOPEN_VERSION) && (_XOPEN_VERSION+0 >= 500) +# define BOOST_HAS_GETTIMEOFDAY +# if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE+0 >= 500) +# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE +# endif +# ifndef BOOST_HAS_LOG1P +# define BOOST_HAS_LOG1P +# endif +# ifndef BOOST_HAS_EXPM1 +# define BOOST_HAS_EXPM1 +# endif +# endif + +# endif + + + + diff --git a/libraries/boost/include/boost/config/detail/select_compiler_config.hpp b/libraries/boost/include/boost/config/detail/select_compiler_config.hpp new file mode 100644 index 0000000000..ced8443da9 --- /dev/null +++ b/libraries/boost/include/boost/config/detail/select_compiler_config.hpp @@ -0,0 +1,158 @@ +// Boost compiler configuration selection header file + +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Martin Wille 2003. +// (C) Copyright Guillaume Melquiond 2003. +// +// 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) + +// See http://www.boost.org/ for most recent version. + +// locate which compiler we are using and define +// BOOST_COMPILER_CONFIG as needed: + +#if defined __CUDACC__ +// NVIDIA CUDA C++ compiler for GPU +# include "boost/config/compiler/nvcc.hpp" + +#endif + +#if defined(__GCCXML__) +// GCC-XML emulates other compilers, it has to appear first here! +# define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc_xml.hpp" + +#elif defined(_CRAYC) +// EDG based Cray compiler: +# define BOOST_COMPILER_CONFIG "boost/config/compiler/cray.hpp" + +#elif defined __COMO__ +// Comeau C++ +# define BOOST_COMPILER_CONFIG "boost/config/compiler/comeau.hpp" + +#elif defined(__PATHSCALE__) && (__PATHCC__ >= 4) +// PathScale EKOPath compiler (has to come before clang and gcc) +# define BOOST_COMPILER_CONFIG "boost/config/compiler/pathscale.hpp" + +#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC) +// Intel +# define BOOST_COMPILER_CONFIG "boost/config/compiler/intel.hpp" + +#elif defined __clang__ && !defined(__CUDACC__) && !defined(__ibmxl__) +// when using clang and cuda at same time, you want to appear as gcc +// Clang C++ emulates GCC, so it has to appear early. +# define BOOST_COMPILER_CONFIG "boost/config/compiler/clang.hpp" + +#elif defined __DMC__ +// Digital Mars C++ +# define BOOST_COMPILER_CONFIG "boost/config/compiler/digitalmars.hpp" + +#elif defined __DCC__ +// Wind River Diab C++ +# define BOOST_COMPILER_CONFIG "boost/config/compiler/diab.hpp" + +#elif defined(__PGI) +// Portland Group Inc. +# define BOOST_COMPILER_CONFIG "boost/config/compiler/pgi.hpp" + +# elif defined(__GNUC__) && !defined(__ibmxl__) +// GNU C++: +# define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc.hpp" + +#elif defined __KCC +// Kai C++ +# define BOOST_COMPILER_CONFIG "boost/config/compiler/kai.hpp" + +#elif defined __sgi +// SGI MIPSpro C++ +# define BOOST_COMPILER_CONFIG "boost/config/compiler/sgi_mipspro.hpp" + +#elif defined __DECCXX +// Compaq Tru64 Unix cxx +# define BOOST_COMPILER_CONFIG "boost/config/compiler/compaq_cxx.hpp" + +#elif defined __ghs +// Greenhills C++ +# define BOOST_COMPILER_CONFIG "boost/config/compiler/greenhills.hpp" + +#elif defined __CODEGEARC__ +// CodeGear - must be checked for before Borland +# define BOOST_COMPILER_CONFIG "boost/config/compiler/codegear.hpp" + +#elif defined __BORLANDC__ +// Borland +# define BOOST_COMPILER_CONFIG "boost/config/compiler/borland.hpp" + +#elif defined __MWERKS__ +// Metrowerks CodeWarrior +# define BOOST_COMPILER_CONFIG "boost/config/compiler/metrowerks.hpp" + +#elif defined __SUNPRO_CC +// Sun Workshop Compiler C++ +# define BOOST_COMPILER_CONFIG "boost/config/compiler/sunpro_cc.hpp" + +#elif defined __HP_aCC +// HP aCC +# define BOOST_COMPILER_CONFIG "boost/config/compiler/hp_acc.hpp" + +#elif defined(__MRC__) || defined(__SC__) +// MPW MrCpp or SCpp +# define BOOST_COMPILER_CONFIG "boost/config/compiler/mpw.hpp" + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) && defined(__MVS__) +// IBM z/OS XL C/C++ +# define BOOST_COMPILER_CONFIG "boost/config/compiler/xlcpp_zos.hpp" + +#elif defined(__ibmxl__) +// IBM XL C/C++ for Linux (Little Endian) +# define BOOST_COMPILER_CONFIG "boost/config/compiler/xlcpp.hpp" + +#elif defined(__IBMCPP__) +// IBM Visual Age or IBM XL C/C++ for Linux (Big Endian) +# define BOOST_COMPILER_CONFIG "boost/config/compiler/vacpp.hpp" + +#elif defined _MSC_VER +// Microsoft Visual C++ +// +// Must remain the last #elif since some other vendors (Metrowerks, for +// example) also #define _MSC_VER +# define BOOST_COMPILER_CONFIG "boost/config/compiler/visualc.hpp" + +#elif defined (BOOST_ASSERT_CONFIG) +// this must come last - generate an error if we don't +// recognise the compiler: +# error "Unknown compiler - please configure (http://www.boost.org/libs/config/config.htm#configuring) and report the results to the main boost mailing list (http://www.boost.org/more/mailing_lists.htm#main)" + +#endif + +#if 0 +// +// This section allows dependency scanners to find all the headers we *might* include: +// +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif + diff --git a/libraries/boost/include/boost/config/detail/select_platform_config.hpp b/libraries/boost/include/boost/config/detail/select_platform_config.hpp new file mode 100644 index 0000000000..b36eca57a2 --- /dev/null +++ b/libraries/boost/include/boost/config/detail/select_platform_config.hpp @@ -0,0 +1,142 @@ +// Boost compiler configuration selection header file + +// (C) Copyright John Maddock 2001 - 2002. +// (C) Copyright Jens Maurer 2001. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// locate which platform we are on and define BOOST_PLATFORM_CONFIG as needed. +// Note that we define the headers to include using "header_name" not +// in order to prevent macro expansion within the header +// name (for example "linux" is a macro on linux systems). + +#if (defined(linux) || defined(__linux) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__)) && !defined(_CRAYC) +// linux, also other platforms (Hurd etc) that use GLIBC, should these really have their own config headers though? +# define BOOST_PLATFORM_CONFIG "boost/config/platform/linux.hpp" + +#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) +// BSD: +# define BOOST_PLATFORM_CONFIG "boost/config/platform/bsd.hpp" + +#elif defined(sun) || defined(__sun) +// solaris: +# define BOOST_PLATFORM_CONFIG "boost/config/platform/solaris.hpp" + +#elif defined(__sgi) +// SGI Irix: +# define BOOST_PLATFORM_CONFIG "boost/config/platform/irix.hpp" + +#elif defined(__hpux) +// hp unix: +# define BOOST_PLATFORM_CONFIG "boost/config/platform/hpux.hpp" + +#elif defined(__CYGWIN__) +// cygwin is not win32: +# define BOOST_PLATFORM_CONFIG "boost/config/platform/cygwin.hpp" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +// win32: +# define BOOST_PLATFORM_CONFIG "boost/config/platform/win32.hpp" + +#elif defined(__HAIKU__) +// Haiku +# define BOOST_PLATFORM_CONFIG "boost/config/platform/haiku.hpp" + +#elif defined(__BEOS__) +// BeOS +# define BOOST_PLATFORM_CONFIG "boost/config/platform/beos.hpp" + +#elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) +// MacOS +# define BOOST_PLATFORM_CONFIG "boost/config/platform/macos.hpp" + +#elif defined(__TOS_MVS__) +// IBM z/OS +# define BOOST_PLATFORM_CONFIG "boost/config/platform/zos.hpp" + +#elif defined(__IBMCPP__) || defined(_AIX) +// IBM AIX +# define BOOST_PLATFORM_CONFIG "boost/config/platform/aix.hpp" + +#elif defined(__amigaos__) +// AmigaOS +# define BOOST_PLATFORM_CONFIG "boost/config/platform/amigaos.hpp" + +#elif defined(__QNXNTO__) +// QNX: +# define BOOST_PLATFORM_CONFIG "boost/config/platform/qnxnto.hpp" + +#elif defined(__VXWORKS__) +// vxWorks: +# define BOOST_PLATFORM_CONFIG "boost/config/platform/vxworks.hpp" + +#elif defined(__SYMBIAN32__) +// Symbian: +# define BOOST_PLATFORM_CONFIG "boost/config/platform/symbian.hpp" + +#elif defined(_CRAYC) +// Cray: +# define BOOST_PLATFORM_CONFIG "boost/config/platform/cray.hpp" + +#elif defined(__VMS) +// VMS: +# define BOOST_PLATFORM_CONFIG "boost/config/platform/vms.hpp" + +#elif defined(__CloudABI__) +// Nuxi CloudABI: +# define BOOST_PLATFORM_CONFIG "boost/config/platform/cloudabi.hpp" +#else + +# if defined(unix) \ + || defined(__unix) \ + || defined(_XOPEN_SOURCE) \ + || defined(_POSIX_SOURCE) + + // generic unix platform: + +# ifndef BOOST_HAS_UNISTD_H +# define BOOST_HAS_UNISTD_H +# endif + +# include + +# endif + +# if defined (BOOST_ASSERT_CONFIG) + // this must come last - generate an error if we don't + // recognise the platform: +# error "Unknown platform - please configure and report the results to boost.org" +# endif + +#endif + +#if 0 +// +// This section allows dependency scanners to find all the files we *might* include: +// +# include "boost/config/platform/linux.hpp" +# include "boost/config/platform/bsd.hpp" +# include "boost/config/platform/solaris.hpp" +# include "boost/config/platform/irix.hpp" +# include "boost/config/platform/hpux.hpp" +# include "boost/config/platform/cygwin.hpp" +# include "boost/config/platform/win32.hpp" +# include "boost/config/platform/beos.hpp" +# include "boost/config/platform/macos.hpp" +# include "boost/config/platform/zos.hpp" +# include "boost/config/platform/aix.hpp" +# include "boost/config/platform/amigaos.hpp" +# include "boost/config/platform/qnxnto.hpp" +# include "boost/config/platform/vxworks.hpp" +# include "boost/config/platform/symbian.hpp" +# include "boost/config/platform/cray.hpp" +# include "boost/config/platform/vms.hpp" +# include + + + +#endif + diff --git a/libraries/boost/include/boost/config/detail/select_stdlib_config.hpp b/libraries/boost/include/boost/config/detail/select_stdlib_config.hpp new file mode 100644 index 0000000000..8db778c86b --- /dev/null +++ b/libraries/boost/include/boost/config/detail/select_stdlib_config.hpp @@ -0,0 +1,110 @@ +// Boost compiler configuration selection header file + +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Jens Maurer 2001 - 2002. +// Use, modification and distribution are subject to 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) + + +// See http://www.boost.org for most recent version. + +// locate which std lib we are using and define BOOST_STDLIB_CONFIG as needed: + +// First include to determine if some version of STLport is in use as the std lib +// (do not rely on this header being included since users can short-circuit this header +// if they know whose std lib they are using.) +#ifdef __cplusplus +# include +#else +# include +#endif + +#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) +// STLPort library; this _must_ come first, otherwise since +// STLport typically sits on top of some other library, we +// can end up detecting that first rather than STLport: +# define BOOST_STDLIB_CONFIG "boost/config/stdlib/stlport.hpp" + +#else + +// If our std lib was not some version of STLport, and has not otherwise +// been detected, then include as it is about +// the smallest of the std lib headers that includes real C++ stuff. +// Some std libs do not include their C++-related macros in +// so this additional include makes sure we get those definitions. +// Note: do not rely on this header being included since users can short-circuit this +// #include if they know whose std lib they are using. +#if !defined(__LIBCOMO__) && !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)\ + && !defined(_LIBCPP_VERSION) && !defined(__GLIBCPP__) && !defined(__GLIBCXX__)\ + && !defined(__STL_CONFIG_H) && !defined(__MSL_CPP__) && !defined(__IBMCPP__)\ + && !defined(MSIPL_COMPILE_H) && !defined(_YVALS) && !defined(_CPPLIB_VER) +#include +#endif + +#if defined(__LIBCOMO__) +// Comeau STL: +#define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcomo.hpp" + +#elif defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER) +// Rogue Wave library: +# define BOOST_STDLIB_CONFIG "boost/config/stdlib/roguewave.hpp" + +#elif defined(_LIBCPP_VERSION) +// libc++ +# define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcpp.hpp" + +#elif defined(__GLIBCPP__) || defined(__GLIBCXX__) +// GNU libstdc++ 3 +# define BOOST_STDLIB_CONFIG "boost/config/stdlib/libstdcpp3.hpp" + +#elif defined(__STL_CONFIG_H) +// generic SGI STL +# define BOOST_STDLIB_CONFIG "boost/config/stdlib/sgi.hpp" + +#elif defined(__MSL_CPP__) +// MSL standard lib: +# define BOOST_STDLIB_CONFIG "boost/config/stdlib/msl.hpp" + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) && defined(__MVS__) +// IBM z/OS XL C/C++ +# define BOOST_STDLIB_CONFIG "boost/config/stdlib/xlcpp_zos.hpp" + +#elif defined(__IBMCPP__) +// take the default VACPP std lib +# define BOOST_STDLIB_CONFIG "boost/config/stdlib/vacpp.hpp" + +#elif defined(MSIPL_COMPILE_H) +// Modena C++ standard library +# define BOOST_STDLIB_CONFIG "boost/config/stdlib/modena.hpp" + +#elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER) +// Dinkumware Library (this has to appear after any possible replacement libraries): +# define BOOST_STDLIB_CONFIG "boost/config/stdlib/dinkumware.hpp" + +#elif defined (BOOST_ASSERT_CONFIG) +// this must come last - generate an error if we don't +// recognise the library: +# error "Unknown standard library - please configure and report the results to boost.org" + +#endif + +#endif + +#if 0 +// +// This section allows dependency scanners to find all the files we *might* include: +// +# include "boost/config/stdlib/stlport.hpp" +# include "boost/config/stdlib/libcomo.hpp" +# include "boost/config/stdlib/roguewave.hpp" +# include "boost/config/stdlib/libcpp.hpp" +# include "boost/config/stdlib/libstdcpp3.hpp" +# include "boost/config/stdlib/sgi.hpp" +# include "boost/config/stdlib/msl.hpp" +# include "boost/config/stdlib/xlcpp_zos.hpp" +# include "boost/config/stdlib/vacpp.hpp" +# include "boost/config/stdlib/modena.hpp" +# include "boost/config/stdlib/dinkumware.hpp" +#endif + diff --git a/libraries/boost/include/boost/config/detail/suffix.hpp b/libraries/boost/include/boost/config/detail/suffix.hpp new file mode 100644 index 0000000000..22d31f68db --- /dev/null +++ b/libraries/boost/include/boost/config/detail/suffix.hpp @@ -0,0 +1,1036 @@ +// Boost config.hpp configuration header file ------------------------------// +// boostinspect:ndprecated_macros -- tell the inspect tool to ignore this file + +// Copyright (c) 2001-2003 John Maddock +// Copyright (c) 2001 Darin Adler +// Copyright (c) 2001 Peter Dimov +// Copyright (c) 2002 Bill Kempf +// Copyright (c) 2002 Jens Maurer +// Copyright (c) 2002-2003 David Abrahams +// Copyright (c) 2003 Gennaro Prota +// Copyright (c) 2003 Eric Friedman +// Copyright (c) 2010 Eric Jourdanneau, Joel Falcou +// 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) + +// See http://www.boost.org/ for most recent version. + +// Boost config.hpp policy and rationale documentation has been moved to +// http://www.boost.org/libs/config/ +// +// This file is intended to be stable, and relatively unchanging. +// It should contain boilerplate code only - no compiler specific +// code unless it is unavoidable - no changes unless unavoidable. + +#ifndef BOOST_CONFIG_SUFFIX_HPP +#define BOOST_CONFIG_SUFFIX_HPP + +#if defined(__GNUC__) && (__GNUC__ >= 4) +// +// Some GCC-4.x versions issue warnings even when __extension__ is used, +// so use this as a workaround: +// +#pragma GCC system_header +#endif + +// +// ensure that visibility macros are always defined, thus symplifying use +// +#ifndef BOOST_SYMBOL_EXPORT +# define BOOST_SYMBOL_EXPORT +#endif +#ifndef BOOST_SYMBOL_IMPORT +# define BOOST_SYMBOL_IMPORT +#endif +#ifndef BOOST_SYMBOL_VISIBLE +# define BOOST_SYMBOL_VISIBLE +#endif + +// +// look for long long by looking for the appropriate macros in . +// Note that we use limits.h rather than climits for maximal portability, +// remember that since these just declare a bunch of macros, there should be +// no namespace issues from this. +// +#if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_LONG_LONG) \ + && !defined(BOOST_MSVC) && !defined(__BORLANDC__) +# include +# if (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX)) +# define BOOST_HAS_LONG_LONG +# else +# define BOOST_NO_LONG_LONG +# endif +#endif + +// GCC 3.x will clean up all of those nasty macro definitions that +// BOOST_NO_CTYPE_FUNCTIONS is intended to help work around, so undefine +// it under GCC 3.x. +#if defined(__GNUC__) && (__GNUC__ >= 3) && defined(BOOST_NO_CTYPE_FUNCTIONS) +# undef BOOST_NO_CTYPE_FUNCTIONS +#endif + +// +// Assume any extensions are in namespace std:: unless stated otherwise: +// +# ifndef BOOST_STD_EXTENSION_NAMESPACE +# define BOOST_STD_EXTENSION_NAMESPACE std +# endif + +// +// If cv-qualified specializations are not allowed, then neither are cv-void ones: +// +# if defined(BOOST_NO_CV_SPECIALIZATIONS) \ + && !defined(BOOST_NO_CV_VOID_SPECIALIZATIONS) +# define BOOST_NO_CV_VOID_SPECIALIZATIONS +# endif + +// +// If there is no numeric_limits template, then it can't have any compile time +// constants either! +// +# if defined(BOOST_NO_LIMITS) \ + && !defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS) +# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS +# define BOOST_NO_MS_INT64_NUMERIC_LIMITS +# define BOOST_NO_LONG_LONG_NUMERIC_LIMITS +# endif + +// +// if there is no long long then there is no specialisation +// for numeric_limits either: +// +#if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_LONG_LONG_NUMERIC_LIMITS) +# define BOOST_NO_LONG_LONG_NUMERIC_LIMITS +#endif + +// +// if there is no __int64 then there is no specialisation +// for numeric_limits<__int64> either: +// +#if !defined(BOOST_HAS_MS_INT64) && !defined(BOOST_NO_MS_INT64_NUMERIC_LIMITS) +# define BOOST_NO_MS_INT64_NUMERIC_LIMITS +#endif + +// +// if member templates are supported then so is the +// VC6 subset of member templates: +// +# if !defined(BOOST_NO_MEMBER_TEMPLATES) \ + && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) +# define BOOST_MSVC6_MEMBER_TEMPLATES +# endif + +// +// Without partial specialization, can't test for partial specialisation bugs: +// +# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ + && !defined(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG) +# define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG +# endif + +// +// Without partial specialization, we can't have array-type partial specialisations: +// +# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ + && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) +# define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS +# endif + +// +// Without partial specialization, std::iterator_traits can't work: +// +# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ + && !defined(BOOST_NO_STD_ITERATOR_TRAITS) +# define BOOST_NO_STD_ITERATOR_TRAITS +# endif + +// +// Without partial specialization, partial +// specialization with default args won't work either: +// +# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ + && !defined(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS) +# define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS +# endif + +// +// Without member template support, we can't have template constructors +// in the standard library either: +// +# if defined(BOOST_NO_MEMBER_TEMPLATES) \ + && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) \ + && !defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS) +# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS +# endif + +// +// Without member template support, we can't have a conforming +// std::allocator template either: +// +# if defined(BOOST_NO_MEMBER_TEMPLATES) \ + && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) \ + && !defined(BOOST_NO_STD_ALLOCATOR) +# define BOOST_NO_STD_ALLOCATOR +# endif + +// +// without ADL support then using declarations will break ADL as well: +// +#if defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL) +# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL +#endif + +// +// Without typeid support we have no dynamic RTTI either: +// +#if defined(BOOST_NO_TYPEID) && !defined(BOOST_NO_RTTI) +# define BOOST_NO_RTTI +#endif + +// +// If we have a standard allocator, then we have a partial one as well: +// +#if !defined(BOOST_NO_STD_ALLOCATOR) +# define BOOST_HAS_PARTIAL_STD_ALLOCATOR +#endif + +// +// We can't have a working std::use_facet if there is no std::locale: +// +# if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_USE_FACET) +# define BOOST_NO_STD_USE_FACET +# endif + +// +// We can't have a std::messages facet if there is no std::locale: +// +# if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_MESSAGES) +# define BOOST_NO_STD_MESSAGES +# endif + +// +// We can't have a working std::wstreambuf if there is no std::locale: +// +# if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_WSTREAMBUF) +# define BOOST_NO_STD_WSTREAMBUF +# endif + +// +// We can't have a if there is no : +// +# if defined(BOOST_NO_CWCHAR) && !defined(BOOST_NO_CWCTYPE) +# define BOOST_NO_CWCTYPE +# endif + +// +// We can't have a swprintf if there is no : +// +# if defined(BOOST_NO_CWCHAR) && !defined(BOOST_NO_SWPRINTF) +# define BOOST_NO_SWPRINTF +# endif + +// +// If Win32 support is turned off, then we must turn off +// threading support also, unless there is some other +// thread API enabled: +// +#if defined(BOOST_DISABLE_WIN32) && defined(_WIN32) \ + && !defined(BOOST_DISABLE_THREADS) && !defined(BOOST_HAS_PTHREADS) +# define BOOST_DISABLE_THREADS +#endif + +// +// Turn on threading support if the compiler thinks that it's in +// multithreaded mode. We put this here because there are only a +// limited number of macros that identify this (if there's any missing +// from here then add to the appropriate compiler section): +// +#if (defined(__MT__) || defined(_MT) || defined(_REENTRANT) \ + || defined(_PTHREADS) || defined(__APPLE__) || defined(__DragonFly__)) \ + && !defined(BOOST_HAS_THREADS) +# define BOOST_HAS_THREADS +#endif + +// +// Turn threading support off if BOOST_DISABLE_THREADS is defined: +// +#if defined(BOOST_DISABLE_THREADS) && defined(BOOST_HAS_THREADS) +# undef BOOST_HAS_THREADS +#endif + +// +// Turn threading support off if we don't recognise the threading API: +// +#if defined(BOOST_HAS_THREADS) && !defined(BOOST_HAS_PTHREADS)\ + && !defined(BOOST_HAS_WINTHREADS) && !defined(BOOST_HAS_BETHREADS)\ + && !defined(BOOST_HAS_MPTASKS) +# undef BOOST_HAS_THREADS +#endif + +// +// Turn threading detail macros off if we don't (want to) use threading +// +#ifndef BOOST_HAS_THREADS +# undef BOOST_HAS_PTHREADS +# undef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE +# undef BOOST_HAS_PTHREAD_YIELD +# undef BOOST_HAS_PTHREAD_DELAY_NP +# undef BOOST_HAS_WINTHREADS +# undef BOOST_HAS_BETHREADS +# undef BOOST_HAS_MPTASKS +#endif + +// +// If the compiler claims to be C99 conformant, then it had better +// have a : +// +# if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901) +# define BOOST_HAS_STDINT_H +# ifndef BOOST_HAS_LOG1P +# define BOOST_HAS_LOG1P +# endif +# ifndef BOOST_HAS_EXPM1 +# define BOOST_HAS_EXPM1 +# endif +# endif + +// +// Define BOOST_NO_SLIST and BOOST_NO_HASH if required. +// Note that this is for backwards compatibility only. +// +# if !defined(BOOST_HAS_SLIST) && !defined(BOOST_NO_SLIST) +# define BOOST_NO_SLIST +# endif + +# if !defined(BOOST_HAS_HASH) && !defined(BOOST_NO_HASH) +# define BOOST_NO_HASH +# endif + +// +// Set BOOST_SLIST_HEADER if not set already: +// +#if defined(BOOST_HAS_SLIST) && !defined(BOOST_SLIST_HEADER) +# define BOOST_SLIST_HEADER +#endif + +// +// Set BOOST_HASH_SET_HEADER if not set already: +// +#if defined(BOOST_HAS_HASH) && !defined(BOOST_HASH_SET_HEADER) +# define BOOST_HASH_SET_HEADER +#endif + +// +// Set BOOST_HASH_MAP_HEADER if not set already: +// +#if defined(BOOST_HAS_HASH) && !defined(BOOST_HASH_MAP_HEADER) +# define BOOST_HASH_MAP_HEADER +#endif + +// BOOST_HAS_ABI_HEADERS +// This macro gets set if we have headers that fix the ABI, +// and prevent ODR violations when linking to external libraries: +#if defined(BOOST_ABI_PREFIX) && defined(BOOST_ABI_SUFFIX) && !defined(BOOST_HAS_ABI_HEADERS) +# define BOOST_HAS_ABI_HEADERS +#endif + +#if defined(BOOST_HAS_ABI_HEADERS) && defined(BOOST_DISABLE_ABI_HEADERS) +# undef BOOST_HAS_ABI_HEADERS +#endif + +// BOOST_NO_STDC_NAMESPACE workaround --------------------------------------// +// Because std::size_t usage is so common, even in boost headers which do not +// otherwise use the C library, the workaround is included here so +// that ugly workaround code need not appear in many other boost headers. +// NOTE WELL: This is a workaround for non-conforming compilers; +// must still be #included in the usual places so that inclusion +// works as expected with standard conforming compilers. The resulting +// double inclusion of is harmless. + +# if defined(BOOST_NO_STDC_NAMESPACE) && defined(__cplusplus) +# include + namespace std { using ::ptrdiff_t; using ::size_t; } +# endif + +// Workaround for the unfortunate min/max macros defined by some platform headers + +#define BOOST_PREVENT_MACRO_SUBSTITUTION + +#ifndef BOOST_USING_STD_MIN +# define BOOST_USING_STD_MIN() using std::min +#endif + +#ifndef BOOST_USING_STD_MAX +# define BOOST_USING_STD_MAX() using std::max +#endif + +// BOOST_NO_STD_MIN_MAX workaround -----------------------------------------// + +# if defined(BOOST_NO_STD_MIN_MAX) && defined(__cplusplus) + +namespace std { + template + inline const _Tp& min BOOST_PREVENT_MACRO_SUBSTITUTION (const _Tp& __a, const _Tp& __b) { + return __b < __a ? __b : __a; + } + template + inline const _Tp& max BOOST_PREVENT_MACRO_SUBSTITUTION (const _Tp& __a, const _Tp& __b) { + return __a < __b ? __b : __a; + } +} + +# endif + +// BOOST_STATIC_CONSTANT workaround --------------------------------------- // +// On compilers which don't allow in-class initialization of static integral +// constant members, we must use enums as a workaround if we want the constants +// to be available at compile-time. This macro gives us a convenient way to +// declare such constants. + +# ifdef BOOST_NO_INCLASS_MEMBER_INITIALIZATION +# define BOOST_STATIC_CONSTANT(type, assignment) enum { assignment } +# else +# define BOOST_STATIC_CONSTANT(type, assignment) static const type assignment +# endif + +// BOOST_USE_FACET / HAS_FACET workaround ----------------------------------// +// When the standard library does not have a conforming std::use_facet there +// are various workarounds available, but they differ from library to library. +// The same problem occurs with has_facet. +// These macros provide a consistent way to access a locale's facets. +// Usage: +// replace +// std::use_facet(loc); +// with +// BOOST_USE_FACET(Type, loc); +// Note do not add a std:: prefix to the front of BOOST_USE_FACET! +// Use for BOOST_HAS_FACET is analogous. + +#if defined(BOOST_NO_STD_USE_FACET) +# ifdef BOOST_HAS_TWO_ARG_USE_FACET +# define BOOST_USE_FACET(Type, loc) std::use_facet(loc, static_cast(0)) +# define BOOST_HAS_FACET(Type, loc) std::has_facet(loc, static_cast(0)) +# elif defined(BOOST_HAS_MACRO_USE_FACET) +# define BOOST_USE_FACET(Type, loc) std::_USE(loc, Type) +# define BOOST_HAS_FACET(Type, loc) std::_HAS(loc, Type) +# elif defined(BOOST_HAS_STLP_USE_FACET) +# define BOOST_USE_FACET(Type, loc) (*std::_Use_facet(loc)) +# define BOOST_HAS_FACET(Type, loc) std::has_facet< Type >(loc) +# endif +#else +# define BOOST_USE_FACET(Type, loc) std::use_facet< Type >(loc) +# define BOOST_HAS_FACET(Type, loc) std::has_facet< Type >(loc) +#endif + +// BOOST_NESTED_TEMPLATE workaround ------------------------------------------// +// Member templates are supported by some compilers even though they can't use +// the A::template member syntax, as a workaround replace: +// +// typedef typename A::template rebind binder; +// +// with: +// +// typedef typename A::BOOST_NESTED_TEMPLATE rebind binder; + +#ifndef BOOST_NO_MEMBER_TEMPLATE_KEYWORD +# define BOOST_NESTED_TEMPLATE template +#else +# define BOOST_NESTED_TEMPLATE +#endif + +// BOOST_UNREACHABLE_RETURN(x) workaround -------------------------------------// +// Normally evaluates to nothing, unless BOOST_NO_UNREACHABLE_RETURN_DETECTION +// is defined, in which case it evaluates to return x; Use when you have a return +// statement that can never be reached. + +#ifndef BOOST_UNREACHABLE_RETURN +# ifdef BOOST_NO_UNREACHABLE_RETURN_DETECTION +# define BOOST_UNREACHABLE_RETURN(x) return x; +# else +# define BOOST_UNREACHABLE_RETURN(x) +# endif +#endif + +// BOOST_DEDUCED_TYPENAME workaround ------------------------------------------// +// +// Some compilers don't support the use of `typename' for dependent +// types in deduced contexts, e.g. +// +// template void f(T, typename T::type); +// ^^^^^^^^ +// Replace these declarations with: +// +// template void f(T, BOOST_DEDUCED_TYPENAME T::type); + +#ifndef BOOST_NO_DEDUCED_TYPENAME +# define BOOST_DEDUCED_TYPENAME typename +#else +# define BOOST_DEDUCED_TYPENAME +#endif + +#ifndef BOOST_NO_TYPENAME_WITH_CTOR +# define BOOST_CTOR_TYPENAME typename +#else +# define BOOST_CTOR_TYPENAME +#endif + +// long long workaround ------------------------------------------// +// On gcc (and maybe other compilers?) long long is alway supported +// but it's use may generate either warnings (with -ansi), or errors +// (with -pedantic -ansi) unless it's use is prefixed by __extension__ +// +#if defined(BOOST_HAS_LONG_LONG) && defined(__cplusplus) +namespace boost{ +# ifdef __GNUC__ + __extension__ typedef long long long_long_type; + __extension__ typedef unsigned long long ulong_long_type; +# else + typedef long long long_long_type; + typedef unsigned long long ulong_long_type; +# endif +} +#endif +// same again for __int128: +#if defined(BOOST_HAS_INT128) && defined(__cplusplus) +namespace boost{ +# ifdef __GNUC__ + __extension__ typedef __int128 int128_type; + __extension__ typedef unsigned __int128 uint128_type; +# else + typedef __int128 int128_type; + typedef unsigned __int128 uint128_type; +# endif +} +#endif +// same again for __float128: +#if defined(BOOST_HAS_FLOAT128) && defined(__cplusplus) +namespace boost { +# ifdef __GNUC__ + __extension__ typedef __float128 float128_type; +# else + typedef __float128 float128_type; +# endif +} +#endif + +// BOOST_[APPEND_]EXPLICIT_TEMPLATE_[NON_]TYPE macros --------------------------// + +// These macros are obsolete. Port away and remove. + +# define BOOST_EXPLICIT_TEMPLATE_TYPE(t) +# define BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t) +# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v) +# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) + +# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t) +# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t) +# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v) +# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) + +// When BOOST_NO_STD_TYPEINFO is defined, we can just import +// the global definition into std namespace: +#if defined(BOOST_NO_STD_TYPEINFO) && defined(__cplusplus) +#include +namespace std{ using ::type_info; } +#endif + +// ---------------------------------------------------------------------------// + +// Helper macro BOOST_STRINGIZE: +// Helper macro BOOST_JOIN: + +#include + +// +// Set some default values for compiler/library/platform names. +// These are for debugging config setup only: +// +# ifndef BOOST_COMPILER +# define BOOST_COMPILER "Unknown ISO C++ Compiler" +# endif +# ifndef BOOST_STDLIB +# define BOOST_STDLIB "Unknown ISO standard library" +# endif +# ifndef BOOST_PLATFORM +# if defined(unix) || defined(__unix) || defined(_XOPEN_SOURCE) \ + || defined(_POSIX_SOURCE) +# define BOOST_PLATFORM "Generic Unix" +# else +# define BOOST_PLATFORM "Unknown" +# endif +# endif + +// +// Set some default values GPU support +// +# ifndef BOOST_GPU_ENABLED +# define BOOST_GPU_ENABLED +# endif + +// BOOST_RESTRICT ---------------------------------------------// +// Macro to use in place of 'restrict' keyword variants +#if !defined(BOOST_RESTRICT) +# if defined(_MSC_VER) +# define BOOST_RESTRICT __restrict +# if !defined(BOOST_NO_RESTRICT_REFERENCES) && (_MSC_FULL_VER < 190023026) +# define BOOST_NO_RESTRICT_REFERENCES +# endif +# elif defined(__GNUC__) && __GNUC__ > 3 + // Clang also defines __GNUC__ (as 4) +# define BOOST_RESTRICT __restrict__ +# else +# define BOOST_RESTRICT +# if !defined(BOOST_NO_RESTRICT_REFERENCES) +# define BOOST_NO_RESTRICT_REFERENCES +# endif +# endif +#endif + +// BOOST_MAY_ALIAS -----------------------------------------------// +// The macro expands to an attribute to mark a type that is allowed to alias other types. +// The macro is defined in the compiler-specific headers. +#if !defined(BOOST_MAY_ALIAS) +# define BOOST_NO_MAY_ALIAS +# define BOOST_MAY_ALIAS +#endif + +// BOOST_FORCEINLINE ---------------------------------------------// +// Macro to use in place of 'inline' to force a function to be inline +#if !defined(BOOST_FORCEINLINE) +# if defined(_MSC_VER) +# define BOOST_FORCEINLINE __forceinline +# elif defined(__GNUC__) && __GNUC__ > 3 + // Clang also defines __GNUC__ (as 4) +# define BOOST_FORCEINLINE inline __attribute__ ((__always_inline__)) +# else +# define BOOST_FORCEINLINE inline +# endif +#endif + +// BOOST_NOINLINE ---------------------------------------------// +// Macro to use in place of 'inline' to prevent a function to be inlined +#if !defined(BOOST_NOINLINE) +# if defined(_MSC_VER) +# define BOOST_NOINLINE __declspec(noinline) +# elif defined(__GNUC__) && __GNUC__ > 3 + // Clang also defines __GNUC__ (as 4) +# if defined(__CUDACC__) + // nvcc doesn't always parse __noinline__, + // see: https://svn.boost.org/trac/boost/ticket/9392 +# define BOOST_NOINLINE __attribute__ ((noinline)) +# else +# define BOOST_NOINLINE __attribute__ ((__noinline__)) +# endif +# else +# define BOOST_NOINLINE +# endif +#endif + +// BOOST_NORETURN ---------------------------------------------// +// Macro to use before a function declaration/definition to designate +// the function as not returning normally (i.e. with a return statement +// or by leaving the function scope, if the function return type is void). +#if !defined(BOOST_NORETURN) +# if defined(_MSC_VER) +# define BOOST_NORETURN __declspec(noreturn) +# elif defined(__GNUC__) +# define BOOST_NORETURN __attribute__ ((__noreturn__)) +# elif defined(__has_attribute) && defined(__SUNPRO_CC) && (__SUNPRO_CC > 0x5130) +# if __has_attribute(noreturn) +# define BOOST_NORETURN [[noreturn]] +# endif +# elif defined(__has_cpp_attribute) +# if __has_cpp_attribute(noreturn) +# define BOOST_NORETURN [[noreturn]] +# endif +# endif +#endif + +#if !defined(BOOST_NORETURN) +# define BOOST_NO_NORETURN +# define BOOST_NORETURN +#endif + +// Branch prediction hints +// These macros are intended to wrap conditional expressions that yield true or false +// +// if (BOOST_LIKELY(var == 10)) +// { +// // the most probable code here +// } +// +#if !defined(BOOST_LIKELY) +# define BOOST_LIKELY(x) x +#endif +#if !defined(BOOST_UNLIKELY) +# define BOOST_UNLIKELY(x) x +#endif + +// Type and data alignment specification +// +#if !defined(BOOST_ALIGNMENT) +# if !defined(BOOST_NO_CXX11_ALIGNAS) +# define BOOST_ALIGNMENT(x) alignas(x) +# elif defined(_MSC_VER) +# define BOOST_ALIGNMENT(x) __declspec(align(x)) +# elif defined(__GNUC__) +# define BOOST_ALIGNMENT(x) __attribute__ ((__aligned__(x))) +# else +# define BOOST_NO_ALIGNMENT +# define BOOST_ALIGNMENT(x) +# endif +#endif + +// Lack of non-public defaulted functions is implied by the lack of any defaulted functions +#if !defined(BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS) && defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) +# define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS +#endif + +// Lack of defaulted moves is implied by the lack of either rvalue references or any defaulted functions +#if !defined(BOOST_NO_CXX11_DEFAULTED_MOVES) && (defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) || defined(BOOST_NO_CXX11_RVALUE_REFERENCES)) +# define BOOST_NO_CXX11_DEFAULTED_MOVES +#endif + +// Defaulted and deleted function declaration helpers +// These macros are intended to be inside a class definition. +// BOOST_DEFAULTED_FUNCTION accepts the function declaration and its +// body, which will be used if the compiler doesn't support defaulted functions. +// BOOST_DELETED_FUNCTION only accepts the function declaration. It +// will expand to a private function declaration, if the compiler doesn't support +// deleted functions. Because of this it is recommended to use BOOST_DELETED_FUNCTION +// in the end of the class definition. +// +// class my_class +// { +// public: +// // Default-constructible +// BOOST_DEFAULTED_FUNCTION(my_class(), {}) +// // Copying prohibited +// BOOST_DELETED_FUNCTION(my_class(my_class const&)) +// BOOST_DELETED_FUNCTION(my_class& operator= (my_class const&)) +// }; +// +#if !(defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) || defined(BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS)) +# define BOOST_DEFAULTED_FUNCTION(fun, body) fun = default; +#else +# define BOOST_DEFAULTED_FUNCTION(fun, body) fun body +#endif + +#if !defined(BOOST_NO_CXX11_DELETED_FUNCTIONS) +# define BOOST_DELETED_FUNCTION(fun) fun = delete; +#else +# define BOOST_DELETED_FUNCTION(fun) private: fun; +#endif + +// +// Set BOOST_NO_DECLTYPE_N3276 when BOOST_NO_DECLTYPE is defined +// +#if defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_CXX11_DECLTYPE_N3276) +#define BOOST_NO_CXX11_DECLTYPE_N3276 BOOST_NO_CXX11_DECLTYPE +#endif + +// -------------------- Deprecated macros for 1.50 --------------------------- +// These will go away in a future release + +// Use BOOST_NO_CXX11_HDR_UNORDERED_SET or BOOST_NO_CXX11_HDR_UNORDERED_MAP +// instead of BOOST_NO_STD_UNORDERED +#if defined(BOOST_NO_CXX11_HDR_UNORDERED_MAP) || defined (BOOST_NO_CXX11_HDR_UNORDERED_SET) +# ifndef BOOST_NO_CXX11_STD_UNORDERED +# define BOOST_NO_CXX11_STD_UNORDERED +# endif +#endif + +// Use BOOST_NO_CXX11_HDR_INITIALIZER_LIST instead of BOOST_NO_INITIALIZER_LISTS +#if defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST) && !defined(BOOST_NO_INITIALIZER_LISTS) +# define BOOST_NO_INITIALIZER_LISTS +#endif + +// Use BOOST_NO_CXX11_HDR_ARRAY instead of BOOST_NO_0X_HDR_ARRAY +#if defined(BOOST_NO_CXX11_HDR_ARRAY) && !defined(BOOST_NO_0X_HDR_ARRAY) +# define BOOST_NO_0X_HDR_ARRAY +#endif +// Use BOOST_NO_CXX11_HDR_CHRONO instead of BOOST_NO_0X_HDR_CHRONO +#if defined(BOOST_NO_CXX11_HDR_CHRONO) && !defined(BOOST_NO_0X_HDR_CHRONO) +# define BOOST_NO_0X_HDR_CHRONO +#endif +// Use BOOST_NO_CXX11_HDR_CODECVT instead of BOOST_NO_0X_HDR_CODECVT +#if defined(BOOST_NO_CXX11_HDR_CODECVT) && !defined(BOOST_NO_0X_HDR_CODECVT) +# define BOOST_NO_0X_HDR_CODECVT +#endif +// Use BOOST_NO_CXX11_HDR_CONDITION_VARIABLE instead of BOOST_NO_0X_HDR_CONDITION_VARIABLE +#if defined(BOOST_NO_CXX11_HDR_CONDITION_VARIABLE) && !defined(BOOST_NO_0X_HDR_CONDITION_VARIABLE) +# define BOOST_NO_0X_HDR_CONDITION_VARIABLE +#endif +// Use BOOST_NO_CXX11_HDR_FORWARD_LIST instead of BOOST_NO_0X_HDR_FORWARD_LIST +#if defined(BOOST_NO_CXX11_HDR_FORWARD_LIST) && !defined(BOOST_NO_0X_HDR_FORWARD_LIST) +# define BOOST_NO_0X_HDR_FORWARD_LIST +#endif +// Use BOOST_NO_CXX11_HDR_FUTURE instead of BOOST_NO_0X_HDR_FUTURE +#if defined(BOOST_NO_CXX11_HDR_FUTURE) && !defined(BOOST_NO_0X_HDR_FUTURE) +# define BOOST_NO_0X_HDR_FUTURE +#endif + +// Use BOOST_NO_CXX11_HDR_INITIALIZER_LIST +// instead of BOOST_NO_0X_HDR_INITIALIZER_LIST or BOOST_NO_INITIALIZER_LISTS +#ifdef BOOST_NO_CXX11_HDR_INITIALIZER_LIST +# ifndef BOOST_NO_0X_HDR_INITIALIZER_LIST +# define BOOST_NO_0X_HDR_INITIALIZER_LIST +# endif +# ifndef BOOST_NO_INITIALIZER_LISTS +# define BOOST_NO_INITIALIZER_LISTS +# endif +#endif + +// Use BOOST_NO_CXX11_HDR_MUTEX instead of BOOST_NO_0X_HDR_MUTEX +#if defined(BOOST_NO_CXX11_HDR_MUTEX) && !defined(BOOST_NO_0X_HDR_MUTEX) +# define BOOST_NO_0X_HDR_MUTEX +#endif +// Use BOOST_NO_CXX11_HDR_RANDOM instead of BOOST_NO_0X_HDR_RANDOM +#if defined(BOOST_NO_CXX11_HDR_RANDOM) && !defined(BOOST_NO_0X_HDR_RANDOM) +# define BOOST_NO_0X_HDR_RANDOM +#endif +// Use BOOST_NO_CXX11_HDR_RATIO instead of BOOST_NO_0X_HDR_RATIO +#if defined(BOOST_NO_CXX11_HDR_RATIO) && !defined(BOOST_NO_0X_HDR_RATIO) +# define BOOST_NO_0X_HDR_RATIO +#endif +// Use BOOST_NO_CXX11_HDR_REGEX instead of BOOST_NO_0X_HDR_REGEX +#if defined(BOOST_NO_CXX11_HDR_REGEX) && !defined(BOOST_NO_0X_HDR_REGEX) +# define BOOST_NO_0X_HDR_REGEX +#endif +// Use BOOST_NO_CXX11_HDR_SYSTEM_ERROR instead of BOOST_NO_0X_HDR_SYSTEM_ERROR +#if defined(BOOST_NO_CXX11_HDR_SYSTEM_ERROR) && !defined(BOOST_NO_0X_HDR_SYSTEM_ERROR) +# define BOOST_NO_0X_HDR_SYSTEM_ERROR +#endif +// Use BOOST_NO_CXX11_HDR_THREAD instead of BOOST_NO_0X_HDR_THREAD +#if defined(BOOST_NO_CXX11_HDR_THREAD) && !defined(BOOST_NO_0X_HDR_THREAD) +# define BOOST_NO_0X_HDR_THREAD +#endif +// Use BOOST_NO_CXX11_HDR_TUPLE instead of BOOST_NO_0X_HDR_TUPLE +#if defined(BOOST_NO_CXX11_HDR_TUPLE) && !defined(BOOST_NO_0X_HDR_TUPLE) +# define BOOST_NO_0X_HDR_TUPLE +#endif +// Use BOOST_NO_CXX11_HDR_TYPE_TRAITS instead of BOOST_NO_0X_HDR_TYPE_TRAITS +#if defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS) && !defined(BOOST_NO_0X_HDR_TYPE_TRAITS) +# define BOOST_NO_0X_HDR_TYPE_TRAITS +#endif +// Use BOOST_NO_CXX11_HDR_TYPEINDEX instead of BOOST_NO_0X_HDR_TYPEINDEX +#if defined(BOOST_NO_CXX11_HDR_TYPEINDEX) && !defined(BOOST_NO_0X_HDR_TYPEINDEX) +# define BOOST_NO_0X_HDR_TYPEINDEX +#endif +// Use BOOST_NO_CXX11_HDR_UNORDERED_MAP instead of BOOST_NO_0X_HDR_UNORDERED_MAP +#if defined(BOOST_NO_CXX11_HDR_UNORDERED_MAP) && !defined(BOOST_NO_0X_HDR_UNORDERED_MAP) +# define BOOST_NO_0X_HDR_UNORDERED_MAP +#endif +// Use BOOST_NO_CXX11_HDR_UNORDERED_SET instead of BOOST_NO_0X_HDR_UNORDERED_SET +#if defined(BOOST_NO_CXX11_HDR_UNORDERED_SET) && !defined(BOOST_NO_0X_HDR_UNORDERED_SET) +# define BOOST_NO_0X_HDR_UNORDERED_SET +#endif + +// ------------------ End of deprecated macros for 1.50 --------------------------- + +// -------------------- Deprecated macros for 1.51 --------------------------- +// These will go away in a future release + +// Use BOOST_NO_CXX11_AUTO_DECLARATIONS instead of BOOST_NO_AUTO_DECLARATIONS +#if defined(BOOST_NO_CXX11_AUTO_DECLARATIONS) && !defined(BOOST_NO_AUTO_DECLARATIONS) +# define BOOST_NO_AUTO_DECLARATIONS +#endif +// Use BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS instead of BOOST_NO_AUTO_MULTIDECLARATIONS +#if defined(BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS) && !defined(BOOST_NO_AUTO_MULTIDECLARATIONS) +# define BOOST_NO_AUTO_MULTIDECLARATIONS +#endif +// Use BOOST_NO_CXX11_CHAR16_T instead of BOOST_NO_CHAR16_T +#if defined(BOOST_NO_CXX11_CHAR16_T) && !defined(BOOST_NO_CHAR16_T) +# define BOOST_NO_CHAR16_T +#endif +// Use BOOST_NO_CXX11_CHAR32_T instead of BOOST_NO_CHAR32_T +#if defined(BOOST_NO_CXX11_CHAR32_T) && !defined(BOOST_NO_CHAR32_T) +# define BOOST_NO_CHAR32_T +#endif +// Use BOOST_NO_CXX11_TEMPLATE_ALIASES instead of BOOST_NO_TEMPLATE_ALIASES +#if defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) && !defined(BOOST_NO_TEMPLATE_ALIASES) +# define BOOST_NO_TEMPLATE_ALIASES +#endif +// Use BOOST_NO_CXX11_CONSTEXPR instead of BOOST_NO_CONSTEXPR +#if defined(BOOST_NO_CXX11_CONSTEXPR) && !defined(BOOST_NO_CONSTEXPR) +# define BOOST_NO_CONSTEXPR +#endif +// Use BOOST_NO_CXX11_DECLTYPE_N3276 instead of BOOST_NO_DECLTYPE_N3276 +#if defined(BOOST_NO_CXX11_DECLTYPE_N3276) && !defined(BOOST_NO_DECLTYPE_N3276) +# define BOOST_NO_DECLTYPE_N3276 +#endif +// Use BOOST_NO_CXX11_DECLTYPE instead of BOOST_NO_DECLTYPE +#if defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_DECLTYPE) +# define BOOST_NO_DECLTYPE +#endif +// Use BOOST_NO_CXX11_DEFAULTED_FUNCTIONS instead of BOOST_NO_DEFAULTED_FUNCTIONS +#if defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) && !defined(BOOST_NO_DEFAULTED_FUNCTIONS) +# define BOOST_NO_DEFAULTED_FUNCTIONS +#endif +// Use BOOST_NO_CXX11_DELETED_FUNCTIONS instead of BOOST_NO_DELETED_FUNCTIONS +#if defined(BOOST_NO_CXX11_DELETED_FUNCTIONS) && !defined(BOOST_NO_DELETED_FUNCTIONS) +# define BOOST_NO_DELETED_FUNCTIONS +#endif +// Use BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS instead of BOOST_NO_EXPLICIT_CONVERSION_OPERATORS +#if defined(BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS) && !defined(BOOST_NO_EXPLICIT_CONVERSION_OPERATORS) +# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS +#endif +// Use BOOST_NO_CXX11_EXTERN_TEMPLATE instead of BOOST_NO_EXTERN_TEMPLATE +#if defined(BOOST_NO_CXX11_EXTERN_TEMPLATE) && !defined(BOOST_NO_EXTERN_TEMPLATE) +# define BOOST_NO_EXTERN_TEMPLATE +#endif +// Use BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS instead of BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS +#if defined(BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS) && !defined(BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS) +# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS +#endif +// Use BOOST_NO_CXX11_LAMBDAS instead of BOOST_NO_LAMBDAS +#if defined(BOOST_NO_CXX11_LAMBDAS) && !defined(BOOST_NO_LAMBDAS) +# define BOOST_NO_LAMBDAS +#endif +// Use BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS instead of BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS +#if defined(BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS) && !defined(BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS) +# define BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS +#endif +// Use BOOST_NO_CXX11_NOEXCEPT instead of BOOST_NO_NOEXCEPT +#if defined(BOOST_NO_CXX11_NOEXCEPT) && !defined(BOOST_NO_NOEXCEPT) +# define BOOST_NO_NOEXCEPT +#endif +// Use BOOST_NO_CXX11_NULLPTR instead of BOOST_NO_NULLPTR +#if defined(BOOST_NO_CXX11_NULLPTR) && !defined(BOOST_NO_NULLPTR) +# define BOOST_NO_NULLPTR +#endif +// Use BOOST_NO_CXX11_RAW_LITERALS instead of BOOST_NO_RAW_LITERALS +#if defined(BOOST_NO_CXX11_RAW_LITERALS) && !defined(BOOST_NO_RAW_LITERALS) +# define BOOST_NO_RAW_LITERALS +#endif +// Use BOOST_NO_CXX11_RVALUE_REFERENCES instead of BOOST_NO_RVALUE_REFERENCES +#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_NO_RVALUE_REFERENCES) +# define BOOST_NO_RVALUE_REFERENCES +#endif +// Use BOOST_NO_CXX11_SCOPED_ENUMS instead of BOOST_NO_SCOPED_ENUMS +#if defined(BOOST_NO_CXX11_SCOPED_ENUMS) && !defined(BOOST_NO_SCOPED_ENUMS) +# define BOOST_NO_SCOPED_ENUMS +#endif +// Use BOOST_NO_CXX11_STATIC_ASSERT instead of BOOST_NO_STATIC_ASSERT +#if defined(BOOST_NO_CXX11_STATIC_ASSERT) && !defined(BOOST_NO_STATIC_ASSERT) +# define BOOST_NO_STATIC_ASSERT +#endif +// Use BOOST_NO_CXX11_STD_UNORDERED instead of BOOST_NO_STD_UNORDERED +#if defined(BOOST_NO_CXX11_STD_UNORDERED) && !defined(BOOST_NO_STD_UNORDERED) +# define BOOST_NO_STD_UNORDERED +#endif +// Use BOOST_NO_CXX11_UNICODE_LITERALS instead of BOOST_NO_UNICODE_LITERALS +#if defined(BOOST_NO_CXX11_UNICODE_LITERALS) && !defined(BOOST_NO_UNICODE_LITERALS) +# define BOOST_NO_UNICODE_LITERALS +#endif +// Use BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX instead of BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX +#if defined(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX) && !defined(BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX) +# define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX +#endif +// Use BOOST_NO_CXX11_VARIADIC_TEMPLATES instead of BOOST_NO_VARIADIC_TEMPLATES +#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_VARIADIC_TEMPLATES) +# define BOOST_NO_VARIADIC_TEMPLATES +#endif +// Use BOOST_NO_CXX11_VARIADIC_MACROS instead of BOOST_NO_VARIADIC_MACROS +#if defined(BOOST_NO_CXX11_VARIADIC_MACROS) && !defined(BOOST_NO_VARIADIC_MACROS) +# define BOOST_NO_VARIADIC_MACROS +#endif +// Use BOOST_NO_CXX11_NUMERIC_LIMITS instead of BOOST_NO_NUMERIC_LIMITS_LOWEST +#if defined(BOOST_NO_CXX11_NUMERIC_LIMITS) && !defined(BOOST_NO_NUMERIC_LIMITS_LOWEST) +# define BOOST_NO_NUMERIC_LIMITS_LOWEST +#endif +// ------------------ End of deprecated macros for 1.51 --------------------------- + + + +// +// Helper macros BOOST_NOEXCEPT, BOOST_NOEXCEPT_IF, BOOST_NOEXCEPT_EXPR +// These aid the transition to C++11 while still supporting C++03 compilers +// +#ifdef BOOST_NO_CXX11_NOEXCEPT +# define BOOST_NOEXCEPT +# define BOOST_NOEXCEPT_OR_NOTHROW throw() +# define BOOST_NOEXCEPT_IF(Predicate) +# define BOOST_NOEXCEPT_EXPR(Expression) false +#else +# define BOOST_NOEXCEPT noexcept +# define BOOST_NOEXCEPT_OR_NOTHROW noexcept +# define BOOST_NOEXCEPT_IF(Predicate) noexcept((Predicate)) +# define BOOST_NOEXCEPT_EXPR(Expression) noexcept((Expression)) +#endif +// +// Helper macro BOOST_FALLTHROUGH +// Fallback definition of BOOST_FALLTHROUGH macro used to mark intended +// fall-through between case labels in a switch statement. We use a definition +// that requires a semicolon after it to avoid at least one type of misuse even +// on unsupported compilers. +// +#ifndef BOOST_FALLTHROUGH +# define BOOST_FALLTHROUGH ((void)0) +#endif + +// +// constexpr workarounds +// +#if defined(BOOST_NO_CXX11_CONSTEXPR) +#define BOOST_CONSTEXPR +#define BOOST_CONSTEXPR_OR_CONST const +#else +#define BOOST_CONSTEXPR constexpr +#define BOOST_CONSTEXPR_OR_CONST constexpr +#endif +#if defined(BOOST_NO_CXX14_CONSTEXPR) +#define BOOST_CXX14_CONSTEXPR +#else +#define BOOST_CXX14_CONSTEXPR constexpr +#endif + +// +// Unused variable/typedef workarounds: +// +#ifndef BOOST_ATTRIBUTE_UNUSED +# define BOOST_ATTRIBUTE_UNUSED +#endif + +#define BOOST_STATIC_CONSTEXPR static BOOST_CONSTEXPR_OR_CONST + +// +// Set BOOST_HAS_STATIC_ASSERT when BOOST_NO_CXX11_STATIC_ASSERT is not defined +// +#if !defined(BOOST_NO_CXX11_STATIC_ASSERT) && !defined(BOOST_HAS_STATIC_ASSERT) +# define BOOST_HAS_STATIC_ASSERT +#endif + +// +// Set BOOST_HAS_RVALUE_REFS when BOOST_NO_CXX11_RVALUE_REFERENCES is not defined +// +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_HAS_RVALUE_REFS) +#define BOOST_HAS_RVALUE_REFS +#endif + +// +// Set BOOST_HAS_VARIADIC_TMPL when BOOST_NO_CXX11_VARIADIC_TEMPLATES is not defined +// +#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_HAS_VARIADIC_TMPL) +#define BOOST_HAS_VARIADIC_TMPL +#endif +// +// Set BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS when +// BOOST_NO_CXX11_VARIADIC_TEMPLATES is set: +// +#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS) +# define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS +#endif + +// +// Finish off with checks for macros that are depricated / no longer supported, +// if any of these are set then it's very likely that much of Boost will no +// longer work. So stop with a #error for now, but give the user a chance +// to continue at their own risk if they really want to: +// +#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_CONFIG_ALLOW_DEPRECATED) +# error "You are using a compiler which lacks features which are now a minimum requirement in order to use Boost, define BOOST_CONFIG_ALLOW_DEPRECATED if you want to continue at your own risk!!!" +#endif + +#endif diff --git a/libraries/boost/include/boost/config/header_deprecated.hpp b/libraries/boost/include/boost/config/header_deprecated.hpp new file mode 100644 index 0000000000..864554f2a2 --- /dev/null +++ b/libraries/boost/include/boost/config/header_deprecated.hpp @@ -0,0 +1,26 @@ +#ifndef BOOST_CONFIG_HEADER_DEPRECATED_HPP_INCLUDED +#define BOOST_CONFIG_HEADER_DEPRECATED_HPP_INCLUDED + +// Copyright 2017 Peter Dimov. +// +// 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 +// +// BOOST_HEADER_DEPRECATED("") +// +// Expands to the equivalent of +// BOOST_PRAGMA_MESSAGE("This header is deprecated. Use instead.") +// +// Note that this header is C compatible. + +#include + +#if defined(BOOST_ALLOW_DEPRECATED_HEADERS) +# define BOOST_HEADER_DEPRECATED(a) +#else +# define BOOST_HEADER_DEPRECATED(a) BOOST_PRAGMA_MESSAGE("This header is deprecated. Use " a " instead.") +#endif + +#endif // BOOST_CONFIG_HEADER_DEPRECATED_HPP_INCLUDED diff --git a/libraries/boost/include/boost/config/helper_macros.hpp b/libraries/boost/include/boost/config/helper_macros.hpp new file mode 100644 index 0000000000..3e79526df6 --- /dev/null +++ b/libraries/boost/include/boost/config/helper_macros.hpp @@ -0,0 +1,37 @@ +#ifndef BOOST_CONFIG_HELPER_MACROS_HPP_INCLUDED +#define BOOST_CONFIG_HELPER_MACROS_HPP_INCLUDED + +// Copyright 2001 John Maddock. +// Copyright 2017 Peter Dimov. +// +// 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 +// +// BOOST_STRINGIZE(X) +// BOOST_JOIN(X, Y) +// +// Note that this header is C compatible. + +// +// Helper macro BOOST_STRINGIZE: +// Converts the parameter X to a string after macro replacement +// on X has been performed. +// +#define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X) +#define BOOST_DO_STRINGIZE(X) #X + +// +// Helper macro BOOST_JOIN: +// The following piece of macro magic joins the two +// arguments together, even when one of the arguments is +// itself a macro (see 16.3.1 in C++ standard). The key +// is that macro expansion of macro arguments does not +// occur in BOOST_DO_JOIN2 but does in BOOST_DO_JOIN. +// +#define BOOST_JOIN(X, Y) BOOST_DO_JOIN(X, Y) +#define BOOST_DO_JOIN(X, Y) BOOST_DO_JOIN2(X,Y) +#define BOOST_DO_JOIN2(X, Y) X##Y + +#endif // BOOST_CONFIG_HELPER_MACROS_HPP_INCLUDED diff --git a/libraries/boost/include/boost/config/no_tr1/cmath.hpp b/libraries/boost/include/boost/config/no_tr1/cmath.hpp new file mode 100644 index 0000000000..d8268d842a --- /dev/null +++ b/libraries/boost/include/boost/config/no_tr1/cmath.hpp @@ -0,0 +1,28 @@ +// (C) Copyright John Maddock 2008. +// Use, modification and distribution are subject to 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) +// +// The aim of this header is just to include but to do +// so in a way that does not result in recursive inclusion of +// the Boost TR1 components if boost/tr1/tr1/cmath is in the +// include search path. We have to do this to avoid circular +// dependencies: +// + +#ifndef BOOST_CONFIG_CMATH +# define BOOST_CONFIG_CMATH + +# ifndef BOOST_TR1_NO_RECURSION +# define BOOST_TR1_NO_RECURSION +# define BOOST_CONFIG_NO_CMATH_RECURSION +# endif + +# include + +# ifdef BOOST_CONFIG_NO_CMATH_RECURSION +# undef BOOST_TR1_NO_RECURSION +# undef BOOST_CONFIG_NO_CMATH_RECURSION +# endif + +#endif diff --git a/libraries/boost/include/boost/config/no_tr1/complex.hpp b/libraries/boost/include/boost/config/no_tr1/complex.hpp new file mode 100644 index 0000000000..ca200922b3 --- /dev/null +++ b/libraries/boost/include/boost/config/no_tr1/complex.hpp @@ -0,0 +1,28 @@ +// (C) Copyright John Maddock 2005. +// Use, modification and distribution are subject to 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) +// +// The aim of this header is just to include but to do +// so in a way that does not result in recursive inclusion of +// the Boost TR1 components if boost/tr1/tr1/complex is in the +// include search path. We have to do this to avoid circular +// dependencies: +// + +#ifndef BOOST_CONFIG_COMPLEX +# define BOOST_CONFIG_COMPLEX + +# ifndef BOOST_TR1_NO_RECURSION +# define BOOST_TR1_NO_RECURSION +# define BOOST_CONFIG_NO_COMPLEX_RECURSION +# endif + +# include + +# ifdef BOOST_CONFIG_NO_COMPLEX_RECURSION +# undef BOOST_TR1_NO_RECURSION +# undef BOOST_CONFIG_NO_COMPLEX_RECURSION +# endif + +#endif diff --git a/libraries/boost/include/boost/config/no_tr1/functional.hpp b/libraries/boost/include/boost/config/no_tr1/functional.hpp new file mode 100644 index 0000000000..e395efc197 --- /dev/null +++ b/libraries/boost/include/boost/config/no_tr1/functional.hpp @@ -0,0 +1,28 @@ +// (C) Copyright John Maddock 2005. +// Use, modification and distribution are subject to 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) +// +// The aim of this header is just to include but to do +// so in a way that does not result in recursive inclusion of +// the Boost TR1 components if boost/tr1/tr1/functional is in the +// include search path. We have to do this to avoid circular +// dependencies: +// + +#ifndef BOOST_CONFIG_FUNCTIONAL +# define BOOST_CONFIG_FUNCTIONAL + +# ifndef BOOST_TR1_NO_RECURSION +# define BOOST_TR1_NO_RECURSION +# define BOOST_CONFIG_NO_FUNCTIONAL_RECURSION +# endif + +# include + +# ifdef BOOST_CONFIG_NO_FUNCTIONAL_RECURSION +# undef BOOST_TR1_NO_RECURSION +# undef BOOST_CONFIG_NO_FUNCTIONAL_RECURSION +# endif + +#endif diff --git a/libraries/boost/include/boost/config/no_tr1/memory.hpp b/libraries/boost/include/boost/config/no_tr1/memory.hpp new file mode 100644 index 0000000000..2b5d208027 --- /dev/null +++ b/libraries/boost/include/boost/config/no_tr1/memory.hpp @@ -0,0 +1,28 @@ +// (C) Copyright John Maddock 2005. +// Use, modification and distribution are subject to 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) +// +// The aim of this header is just to include but to do +// so in a way that does not result in recursive inclusion of +// the Boost TR1 components if boost/tr1/tr1/memory is in the +// include search path. We have to do this to avoid circular +// dependencies: +// + +#ifndef BOOST_CONFIG_MEMORY +# define BOOST_CONFIG_MEMORY + +# ifndef BOOST_TR1_NO_RECURSION +# define BOOST_TR1_NO_RECURSION +# define BOOST_CONFIG_NO_MEMORY_RECURSION +# endif + +# include + +# ifdef BOOST_CONFIG_NO_MEMORY_RECURSION +# undef BOOST_TR1_NO_RECURSION +# undef BOOST_CONFIG_NO_MEMORY_RECURSION +# endif + +#endif diff --git a/libraries/boost/include/boost/config/no_tr1/utility.hpp b/libraries/boost/include/boost/config/no_tr1/utility.hpp new file mode 100644 index 0000000000..dea8f115bc --- /dev/null +++ b/libraries/boost/include/boost/config/no_tr1/utility.hpp @@ -0,0 +1,28 @@ +// (C) Copyright John Maddock 2005. +// Use, modification and distribution are subject to 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) +// +// The aim of this header is just to include but to do +// so in a way that does not result in recursive inclusion of +// the Boost TR1 components if boost/tr1/tr1/utility is in the +// include search path. We have to do this to avoid circular +// dependencies: +// + +#ifndef BOOST_CONFIG_UTILITY +# define BOOST_CONFIG_UTILITY + +# ifndef BOOST_TR1_NO_RECURSION +# define BOOST_TR1_NO_RECURSION +# define BOOST_CONFIG_NO_UTILITY_RECURSION +# endif + +# include + +# ifdef BOOST_CONFIG_NO_UTILITY_RECURSION +# undef BOOST_TR1_NO_RECURSION +# undef BOOST_CONFIG_NO_UTILITY_RECURSION +# endif + +#endif diff --git a/libraries/boost/include/boost/config/platform/aix.hpp b/libraries/boost/include/boost/config/platform/aix.hpp new file mode 100644 index 0000000000..a48e232061 --- /dev/null +++ b/libraries/boost/include/boost/config/platform/aix.hpp @@ -0,0 +1,33 @@ +// (C) Copyright John Maddock 2001 - 2002. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// IBM/Aix specific config options: + +#define BOOST_PLATFORM "IBM Aix" + +#define BOOST_HAS_UNISTD_H +#define BOOST_HAS_NL_TYPES_H +#define BOOST_HAS_NANOSLEEP +#define BOOST_HAS_CLOCK_GETTIME + +// This needs support in "boost/cstdint.hpp" exactly like FreeBSD. +// This platform has header named which includes all +// the things needed. +#define BOOST_HAS_STDINT_H + +// Threading API's: +#define BOOST_HAS_PTHREADS +#define BOOST_HAS_PTHREAD_DELAY_NP +#define BOOST_HAS_SCHED_YIELD +//#define BOOST_HAS_PTHREAD_YIELD + +// boilerplate code: +#include + + + + diff --git a/libraries/boost/include/boost/config/platform/amigaos.hpp b/libraries/boost/include/boost/config/platform/amigaos.hpp new file mode 100644 index 0000000000..34bcf4128b --- /dev/null +++ b/libraries/boost/include/boost/config/platform/amigaos.hpp @@ -0,0 +1,15 @@ +// (C) Copyright John Maddock 2002. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +#define BOOST_PLATFORM "AmigaOS" + +#define BOOST_DISABLE_THREADS +#define BOOST_NO_CWCHAR +#define BOOST_NO_STD_WSTRING +#define BOOST_NO_INTRINSIC_WCHAR_T + + diff --git a/libraries/boost/include/boost/config/platform/beos.hpp b/libraries/boost/include/boost/config/platform/beos.hpp new file mode 100644 index 0000000000..6158c1c20b --- /dev/null +++ b/libraries/boost/include/boost/config/platform/beos.hpp @@ -0,0 +1,26 @@ +// (C) Copyright John Maddock 2001. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// BeOS specific config options: + +#define BOOST_PLATFORM "BeOS" + +#define BOOST_NO_CWCHAR +#define BOOST_NO_CWCTYPE +#define BOOST_HAS_UNISTD_H + +#define BOOST_HAS_BETHREADS + +#ifndef BOOST_DISABLE_THREADS +# define BOOST_HAS_THREADS +#endif + +// boilerplate code: +#include + + + diff --git a/libraries/boost/include/boost/config/platform/bsd.hpp b/libraries/boost/include/boost/config/platform/bsd.hpp new file mode 100644 index 0000000000..79e74a080a --- /dev/null +++ b/libraries/boost/include/boost/config/platform/bsd.hpp @@ -0,0 +1,86 @@ +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Darin Adler 2001. +// (C) Copyright Douglas Gregor 2002. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// generic BSD config options: + +#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__DragonFly__) +#error "This platform is not BSD" +#endif + +#ifdef __FreeBSD__ +#define BOOST_PLATFORM "FreeBSD " BOOST_STRINGIZE(__FreeBSD__) +#elif defined(__NetBSD__) +#define BOOST_PLATFORM "NetBSD " BOOST_STRINGIZE(__NetBSD__) +#elif defined(__OpenBSD__) +#define BOOST_PLATFORM "OpenBSD " BOOST_STRINGIZE(__OpenBSD__) +#elif defined(__DragonFly__) +#define BOOST_PLATFORM "DragonFly " BOOST_STRINGIZE(__DragonFly__) +#endif + +// +// is this the correct version check? +// FreeBSD has but does not +// advertise the fact in : +// +#if (defined(__FreeBSD__) && (__FreeBSD__ >= 3)) || defined(__DragonFly__) +# define BOOST_HAS_NL_TYPES_H +#endif + +// +// FreeBSD 3.x has pthreads support, but defines _POSIX_THREADS in +// and not in +// +#if (defined(__FreeBSD__) && (__FreeBSD__ <= 3))\ + || defined(__OpenBSD__) || defined(__DragonFly__) +# define BOOST_HAS_PTHREADS +#endif + +// +// No wide character support in the BSD header files: +// +#if defined(__NetBSD__) +#define __NetBSD_GCC__ (__GNUC__ * 1000000 \ + + __GNUC_MINOR__ * 1000 \ + + __GNUC_PATCHLEVEL__) +// XXX - the following is required until c++config.h +// defines _GLIBCXX_HAVE_SWPRINTF and friends +// or the preprocessor conditionals are removed +// from the cwchar header. +#define _GLIBCXX_HAVE_SWPRINTF 1 +#endif + +#if !((defined(__FreeBSD__) && (__FreeBSD__ >= 5)) \ + || (defined(__NetBSD_GCC__) && (__NetBSD_GCC__ >= 2095003)) || defined(__DragonFly__)) +# define BOOST_NO_CWCHAR +#endif +// +// The BSD has macros only, no functions: +// +#if !defined(__OpenBSD__) || defined(__DragonFly__) +# define BOOST_NO_CTYPE_FUNCTIONS +#endif + +// +// thread API's not auto detected: +// +#define BOOST_HAS_SCHED_YIELD +#define BOOST_HAS_NANOSLEEP +#define BOOST_HAS_GETTIMEOFDAY +#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE +#define BOOST_HAS_SIGACTION + +// boilerplate code: +#define BOOST_HAS_UNISTD_H +#include + + + + + + diff --git a/libraries/boost/include/boost/config/platform/cloudabi.hpp b/libraries/boost/include/boost/config/platform/cloudabi.hpp new file mode 100644 index 0000000000..bed7b6318d --- /dev/null +++ b/libraries/boost/include/boost/config/platform/cloudabi.hpp @@ -0,0 +1,18 @@ +// Copyright Nuxi, https://nuxi.nl/ 2015. +// 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) + +#define BOOST_PLATFORM "CloudABI" + +#define BOOST_HAS_DIRENT_H +#define BOOST_HAS_STDINT_H +#define BOOST_HAS_UNISTD_H + +#define BOOST_HAS_CLOCK_GETTIME +#define BOOST_HAS_EXPM1 +#define BOOST_HAS_GETTIMEOFDAY +#define BOOST_HAS_LOG1P +#define BOOST_HAS_NANOSLEEP +#define BOOST_HAS_PTHREADS +#define BOOST_HAS_SCHED_YIELD diff --git a/libraries/boost/include/boost/config/platform/cray.hpp b/libraries/boost/include/boost/config/platform/cray.hpp new file mode 100644 index 0000000000..103e9c0620 --- /dev/null +++ b/libraries/boost/include/boost/config/platform/cray.hpp @@ -0,0 +1,18 @@ +// (C) Copyright John Maddock 2011. +// Use, modification and distribution are subject to 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) + + +// See http://www.boost.org for most recent version. + +// SGI Irix specific config options: + +#define BOOST_PLATFORM "Cray" + +// boilerplate code: +#define BOOST_HAS_UNISTD_H +#include + + + diff --git a/libraries/boost/include/boost/config/platform/cygwin.hpp b/libraries/boost/include/boost/config/platform/cygwin.hpp new file mode 100644 index 0000000000..6dd7e57cfd --- /dev/null +++ b/libraries/boost/include/boost/config/platform/cygwin.hpp @@ -0,0 +1,68 @@ +// (C) Copyright John Maddock 2001 - 2003. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// cygwin specific config options: + +#define BOOST_PLATFORM "Cygwin" +#define BOOST_HAS_DIRENT_H +#define BOOST_HAS_LOG1P +#define BOOST_HAS_EXPM1 + +// +// Threading API: +// See if we have POSIX threads, if we do use them, otherwise +// revert to native Win threads. +#define BOOST_HAS_UNISTD_H +#include +#if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS) +# define BOOST_HAS_PTHREADS +# define BOOST_HAS_SCHED_YIELD +# define BOOST_HAS_GETTIMEOFDAY +# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE +//# define BOOST_HAS_SIGACTION +#else +# if !defined(BOOST_HAS_WINTHREADS) +# define BOOST_HAS_WINTHREADS +# endif +# define BOOST_HAS_FTIME +#endif + +// +// find out if we have a stdint.h, there should be a better way to do this: +// +#include +#ifdef _STDINT_H +#define BOOST_HAS_STDINT_H +#endif +#if __GNUC__ > 5 && !defined(BOOST_HAS_STDINT_H) +# define BOOST_HAS_STDINT_H +#endif + +/// Cygwin has no fenv.h +#define BOOST_NO_FENV_H + +// Cygwin has it's own which breaks unless the correct compiler flags are used: +#ifndef BOOST_NO_CXX14_HDR_SHARED_MUTEX +#include +#if !(__XSI_VISIBLE >= 500 || __POSIX_VISIBLE >= 200112) +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif +#endif + +// boilerplate code: +#include + +// +// Cygwin lies about XSI conformance, there is no nl_types.h: +// +#ifdef BOOST_HAS_NL_TYPES_H +# undef BOOST_HAS_NL_TYPES_H +#endif + + + + diff --git a/libraries/boost/include/boost/config/platform/haiku.hpp b/libraries/boost/include/boost/config/platform/haiku.hpp new file mode 100644 index 0000000000..04244c5677 --- /dev/null +++ b/libraries/boost/include/boost/config/platform/haiku.hpp @@ -0,0 +1,31 @@ +// (C) Copyright Jessica Hamilton 2014. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// Haiku specific config options: + +#define BOOST_PLATFORM "Haiku" + +#define BOOST_HAS_UNISTD_H +#define BOOST_HAS_STDINT_H + +#ifndef BOOST_DISABLE_THREADS +# define BOOST_HAS_THREADS +#endif + +#define BOOST_NO_CXX11_HDR_TYPE_TRAITS +#define BOOST_NO_CXX11_ATOMIC_SMART_PTR +#define BOOST_NO_CXX11_STATIC_ASSERT +#define BOOST_NO_CXX11_VARIADIC_MACROS + +// +// thread API's not auto detected: +// +#define BOOST_HAS_SCHED_YIELD +#define BOOST_HAS_GETTIMEOFDAY + +// boilerplate code: +#include diff --git a/libraries/boost/include/boost/config/platform/hpux.hpp b/libraries/boost/include/boost/config/platform/hpux.hpp new file mode 100644 index 0000000000..222622e7ee --- /dev/null +++ b/libraries/boost/include/boost/config/platform/hpux.hpp @@ -0,0 +1,87 @@ +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Jens Maurer 2001 - 2003. +// (C) Copyright David Abrahams 2002. +// (C) Copyright Toon Knapen 2003. +// (C) Copyright Boris Gubenko 2006 - 2007. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// hpux specific config options: + +#define BOOST_PLATFORM "HP-UX" + +// In principle, HP-UX has a nice under the name +// However, it has the following problem: +// Use of UINT32_C(0) results in "0u l" for the preprocessed source +// (verifyable with gcc 2.95.3) +#if (defined(__GNUC__) && (__GNUC__ >= 3)) || defined(__HP_aCC) +# define BOOST_HAS_STDINT_H +#endif + +#if !(defined(__HP_aCC) || !defined(_INCLUDE__STDC_A1_SOURCE)) +# define BOOST_NO_SWPRINTF +#endif +#if defined(__HP_aCC) && !defined(_INCLUDE__STDC_A1_SOURCE) +# define BOOST_NO_CWCTYPE +#endif + +#if defined(__GNUC__) +# if (__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 3)) + // GNU C on HP-UX does not support threads (checked up to gcc 3.3) +# define BOOST_DISABLE_THREADS +# elif !defined(BOOST_DISABLE_THREADS) + // threads supported from gcc-3.3 onwards: +# define BOOST_HAS_THREADS +# define BOOST_HAS_PTHREADS +# endif +#elif defined(__HP_aCC) && !defined(BOOST_DISABLE_THREADS) +# define BOOST_HAS_PTHREADS +#endif + +// boilerplate code: +#define BOOST_HAS_UNISTD_H +#include + +// the following are always available: +#ifndef BOOST_HAS_GETTIMEOFDAY +# define BOOST_HAS_GETTIMEOFDAY +#endif +#ifndef BOOST_HAS_SCHED_YIELD +# define BOOST_HAS_SCHED_YIELD +#endif +#ifndef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE +# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE +#endif +#ifndef BOOST_HAS_NL_TYPES_H +# define BOOST_HAS_NL_TYPES_H +#endif +#ifndef BOOST_HAS_NANOSLEEP +# define BOOST_HAS_NANOSLEEP +#endif +#ifndef BOOST_HAS_GETTIMEOFDAY +# define BOOST_HAS_GETTIMEOFDAY +#endif +#ifndef BOOST_HAS_DIRENT_H +# define BOOST_HAS_DIRENT_H +#endif +#ifndef BOOST_HAS_CLOCK_GETTIME +# define BOOST_HAS_CLOCK_GETTIME +#endif +#ifndef BOOST_HAS_SIGACTION +# define BOOST_HAS_SIGACTION +#endif +#ifndef BOOST_HAS_NRVO +# ifndef __parisc +# define BOOST_HAS_NRVO +# endif +#endif +#ifndef BOOST_HAS_LOG1P +# define BOOST_HAS_LOG1P +#endif +#ifndef BOOST_HAS_EXPM1 +# define BOOST_HAS_EXPM1 +#endif + diff --git a/libraries/boost/include/boost/config/platform/irix.hpp b/libraries/boost/include/boost/config/platform/irix.hpp new file mode 100644 index 0000000000..0acb651552 --- /dev/null +++ b/libraries/boost/include/boost/config/platform/irix.hpp @@ -0,0 +1,31 @@ +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Jens Maurer 2003. +// Use, modification and distribution are subject to 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) + + +// See http://www.boost.org for most recent version. + +// SGI Irix specific config options: + +#define BOOST_PLATFORM "SGI Irix" + +#define BOOST_NO_SWPRINTF +// +// these are not auto detected by POSIX feature tests: +// +#define BOOST_HAS_GETTIMEOFDAY +#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE + +#ifdef __GNUC__ + // GNU C on IRIX does not support threads (checked up to gcc 3.3) +# define BOOST_DISABLE_THREADS +#endif + +// boilerplate code: +#define BOOST_HAS_UNISTD_H +#include + + + diff --git a/libraries/boost/include/boost/config/platform/linux.hpp b/libraries/boost/include/boost/config/platform/linux.hpp new file mode 100644 index 0000000000..c4eef8f80c --- /dev/null +++ b/libraries/boost/include/boost/config/platform/linux.hpp @@ -0,0 +1,106 @@ +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Jens Maurer 2001 - 2003. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// linux specific config options: + +#define BOOST_PLATFORM "linux" + +// make sure we have __GLIBC_PREREQ if available at all +#ifdef __cplusplus +#include +#else +#include +#endif + +// +// added to glibc 2.1.1 +// We can only test for 2.1 though: +// +#if defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 1))) + // defines int64_t unconditionally, but defines + // int64_t only if __GNUC__. Thus, assume a fully usable + // only when using GCC. Update 2017: this appears not to be the case for + // recent glibc releases, see bug report: https://svn.boost.org/trac/boost/ticket/13045 +# if defined(__GNUC__) || ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 5))) +# define BOOST_HAS_STDINT_H +# endif +#endif + +#if defined(__LIBCOMO__) + // + // como on linux doesn't have std:: c functions: + // NOTE: versions of libcomo prior to beta28 have octal version numbering, + // e.g. version 25 is 21 (dec) + // +# if __LIBCOMO_VERSION__ <= 20 +# define BOOST_NO_STDC_NAMESPACE +# endif + +# if __LIBCOMO_VERSION__ <= 21 +# define BOOST_NO_SWPRINTF +# endif + +#endif + +// +// If glibc is past version 2 then we definitely have +// gettimeofday, earlier versions may or may not have it: +// +#if defined(__GLIBC__) && (__GLIBC__ >= 2) +# define BOOST_HAS_GETTIMEOFDAY +#endif + +#ifdef __USE_POSIX199309 +# define BOOST_HAS_NANOSLEEP +#endif + +#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) +// __GLIBC_PREREQ is available since 2.1.2 + + // swprintf is available since glibc 2.2.0 +# if !__GLIBC_PREREQ(2,2) || (!defined(__USE_ISOC99) && !defined(__USE_UNIX98)) +# define BOOST_NO_SWPRINTF +# endif +#else +# define BOOST_NO_SWPRINTF +#endif + +// boilerplate code: +#define BOOST_HAS_UNISTD_H +#include +#if defined(__USE_GNU) && !defined(__ANDROID__) && !defined(ANDROID) +#define BOOST_HAS_PTHREAD_YIELD +#endif + +#ifndef __GNUC__ +// +// if the compiler is not gcc we still need to be able to parse +// the GNU system headers, some of which (mainly ) +// use GNU specific extensions: +// +# ifndef __extension__ +# define __extension__ +# endif +# ifndef __const__ +# define __const__ const +# endif +# ifndef __volatile__ +# define __volatile__ volatile +# endif +# ifndef __signed__ +# define __signed__ signed +# endif +# ifndef __typeof__ +# define __typeof__ typeof +# endif +# ifndef __inline__ +# define __inline__ inline +# endif +#endif + + diff --git a/libraries/boost/include/boost/config/platform/macos.hpp b/libraries/boost/include/boost/config/platform/macos.hpp new file mode 100644 index 0000000000..ed7dc15f28 --- /dev/null +++ b/libraries/boost/include/boost/config/platform/macos.hpp @@ -0,0 +1,87 @@ +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Darin Adler 2001 - 2002. +// (C) Copyright Bill Kempf 2002. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// Mac OS specific config options: + +#define BOOST_PLATFORM "Mac OS" + +#if __MACH__ && !defined(_MSL_USING_MSL_C) + +// Using the Mac OS X system BSD-style C library. + +# ifndef BOOST_HAS_UNISTD_H +# define BOOST_HAS_UNISTD_H +# endif +// +// Begin by including our boilerplate code for POSIX +// feature detection, this is safe even when using +// the MSL as Metrowerks supply their own +// to replace the platform-native BSD one. G++ users +// should also always be able to do this on MaxOS X. +// +# include +# ifndef BOOST_HAS_STDINT_H +# define BOOST_HAS_STDINT_H +# endif + +// +// BSD runtime has pthreads, sigaction, sched_yield and gettimeofday, +// of these only pthreads are advertised in , so set the +// other options explicitly: +// +# define BOOST_HAS_SCHED_YIELD +# define BOOST_HAS_GETTIMEOFDAY +# define BOOST_HAS_SIGACTION + +# if (__GNUC__ < 3) && !defined( __APPLE_CC__) + +// GCC strange "ignore std" mode works better if you pretend everything +// is in the std namespace, for the most part. + +# define BOOST_NO_STDC_NAMESPACE +# endif + +# if (__GNUC__ >= 4) + +// Both gcc and intel require these. +# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE +# define BOOST_HAS_NANOSLEEP + +# endif + +#else + +// Using the MSL C library. + +// We will eventually support threads in non-Carbon builds, but we do +// not support this yet. +# if ( defined(TARGET_API_MAC_CARBON) && TARGET_API_MAC_CARBON ) || ( defined(TARGET_CARBON) && TARGET_CARBON ) + +# if !defined(BOOST_HAS_PTHREADS) +// MPTasks support is deprecated/removed from Boost: +//# define BOOST_HAS_MPTASKS +# elif ( __dest_os == __mac_os_x ) +// We are doing a Carbon/Mach-O/MSL build which has pthreads, but only the +// gettimeofday and no posix. +# define BOOST_HAS_GETTIMEOFDAY +# endif + +#ifdef BOOST_HAS_PTHREADS +# define BOOST_HAS_THREADS +#endif + +// The remote call manager depends on this. +# define BOOST_BIND_ENABLE_PASCAL + +# endif + +#endif + + + diff --git a/libraries/boost/include/boost/config/platform/qnxnto.hpp b/libraries/boost/include/boost/config/platform/qnxnto.hpp new file mode 100644 index 0000000000..d0298cb4ec --- /dev/null +++ b/libraries/boost/include/boost/config/platform/qnxnto.hpp @@ -0,0 +1,31 @@ +// (C) Copyright Jim Douglas 2005. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// QNX specific config options: + +#define BOOST_PLATFORM "QNX" + +#define BOOST_HAS_UNISTD_H +#include + +// QNX claims XOpen version 5 compatibility, but doesn't have an nl_types.h +// or log1p and expm1: +#undef BOOST_HAS_NL_TYPES_H +#undef BOOST_HAS_LOG1P +#undef BOOST_HAS_EXPM1 + +#define BOOST_HAS_PTHREADS +#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE + +#define BOOST_HAS_GETTIMEOFDAY +#define BOOST_HAS_CLOCK_GETTIME +#define BOOST_HAS_NANOSLEEP + + + + + diff --git a/libraries/boost/include/boost/config/platform/solaris.hpp b/libraries/boost/include/boost/config/platform/solaris.hpp new file mode 100644 index 0000000000..51ffe67f33 --- /dev/null +++ b/libraries/boost/include/boost/config/platform/solaris.hpp @@ -0,0 +1,31 @@ +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Jens Maurer 2003. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// sun specific config options: + +#define BOOST_PLATFORM "Sun Solaris" + +#define BOOST_HAS_GETTIMEOFDAY + +// boilerplate code: +#define BOOST_HAS_UNISTD_H +#include + +// +// pthreads don't actually work with gcc unless _PTHREADS is defined: +// +#if defined(__GNUC__) && defined(_POSIX_THREADS) && !defined(_PTHREADS) +# undef BOOST_HAS_PTHREADS +#endif + +#define BOOST_HAS_STDINT_H +#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE +#define BOOST_HAS_LOG1P +#define BOOST_HAS_EXPM1 + + diff --git a/libraries/boost/include/boost/config/platform/symbian.hpp b/libraries/boost/include/boost/config/platform/symbian.hpp new file mode 100644 index 0000000000..f814d00b5b --- /dev/null +++ b/libraries/boost/include/boost/config/platform/symbian.hpp @@ -0,0 +1,97 @@ +// (C) Copyright Yuriy Krasnoschek 2009. +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Jens Maurer 2001 - 2003. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// symbian specific config options: + + +#define BOOST_PLATFORM "Symbian" +#define BOOST_SYMBIAN 1 + + +#if defined(__S60_3X__) +// Open C / C++ plugin was introdused in this SDK, earlier versions don't have CRT / STL +# define BOOST_S60_3rd_EDITION_FP2_OR_LATER_SDK +// make sure we have __GLIBC_PREREQ if available at all +#ifdef __cplusplus +#include +#else +#include +#endif// boilerplate code: +# define BOOST_HAS_UNISTD_H +# include +// S60 SDK defines _POSIX_VERSION as POSIX.1 +# ifndef BOOST_HAS_STDINT_H +# define BOOST_HAS_STDINT_H +# endif +# ifndef BOOST_HAS_GETTIMEOFDAY +# define BOOST_HAS_GETTIMEOFDAY +# endif +# ifndef BOOST_HAS_DIRENT_H +# define BOOST_HAS_DIRENT_H +# endif +# ifndef BOOST_HAS_SIGACTION +# define BOOST_HAS_SIGACTION +# endif +# ifndef BOOST_HAS_PTHREADS +# define BOOST_HAS_PTHREADS +# endif +# ifndef BOOST_HAS_NANOSLEEP +# define BOOST_HAS_NANOSLEEP +# endif +# ifndef BOOST_HAS_SCHED_YIELD +# define BOOST_HAS_SCHED_YIELD +# endif +# ifndef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE +# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE +# endif +# ifndef BOOST_HAS_LOG1P +# define BOOST_HAS_LOG1P +# endif +# ifndef BOOST_HAS_EXPM1 +# define BOOST_HAS_EXPM1 +# endif +# ifndef BOOST_POSIX_API +# define BOOST_POSIX_API +# endif +// endianess support +# include +// Symbian SDK provides _BYTE_ORDER instead of __BYTE_ORDER +# ifndef __LITTLE_ENDIAN +# ifdef _LITTLE_ENDIAN +# define __LITTLE_ENDIAN _LITTLE_ENDIAN +# else +# define __LITTLE_ENDIAN 1234 +# endif +# endif +# ifndef __BIG_ENDIAN +# ifdef _BIG_ENDIAN +# define __BIG_ENDIAN _BIG_ENDIAN +# else +# define __BIG_ENDIAN 4321 +# endif +# endif +# ifndef __BYTE_ORDER +# define __BYTE_ORDER __LITTLE_ENDIAN // Symbian is LE +# endif +// Known limitations +# define BOOST_ASIO_DISABLE_SERIAL_PORT +# define BOOST_DATE_TIME_NO_LOCALE +# define BOOST_NO_STD_WSTRING +# define BOOST_EXCEPTION_DISABLE +# define BOOST_NO_EXCEPTIONS + +#else // TODO: More platform support e.g. UIQ +# error "Unsuppoted Symbian SDK" +#endif + +#if defined(__WINSCW__) && !defined(BOOST_DISABLE_WIN32) +# define BOOST_DISABLE_WIN32 // winscw defines WIN32 macro +#endif + + diff --git a/libraries/boost/include/boost/config/platform/vms.hpp b/libraries/boost/include/boost/config/platform/vms.hpp new file mode 100644 index 0000000000..f70efcfb8e --- /dev/null +++ b/libraries/boost/include/boost/config/platform/vms.hpp @@ -0,0 +1,25 @@ +// (C) Copyright Artyom Beilis 2010. +// Use, modification and distribution are subject to 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) + +#ifndef BOOST_CONFIG_PLATFORM_VMS_HPP +#define BOOST_CONFIG_PLATFORM_VMS_HPP + +#define BOOST_PLATFORM "OpenVMS" + +#undef BOOST_HAS_STDINT_H +#define BOOST_HAS_UNISTD_H +#define BOOST_HAS_NL_TYPES_H +#define BOOST_HAS_GETTIMEOFDAY +#define BOOST_HAS_DIRENT_H +#define BOOST_HAS_PTHREADS +#define BOOST_HAS_NANOSLEEP +#define BOOST_HAS_CLOCK_GETTIME +#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE +#define BOOST_HAS_LOG1P +#define BOOST_HAS_EXPM1 +#define BOOST_HAS_THREADS +#undef BOOST_HAS_SCHED_YIELD + +#endif diff --git a/libraries/boost/include/boost/config/platform/vxworks.hpp b/libraries/boost/include/boost/config/platform/vxworks.hpp new file mode 100644 index 0000000000..a91e4ab439 --- /dev/null +++ b/libraries/boost/include/boost/config/platform/vxworks.hpp @@ -0,0 +1,433 @@ +// (C) Copyright Dustin Spicuzza 2009. +// Adapted to vxWorks 6.9 by Peter Brockamp 2012. +// Updated for VxWorks 7 by Brian Kuhl 2016 +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// Old versions of vxWorks (namely everything below 6.x) are +// absolutely unable to use boost. Old STLs and compilers +// like (GCC 2.96) . Do not even think of getting this to work, +// a miserable failure will be guaranteed! +// +// Equally, this file has been tested for RTPs (Real Time Processes) +// only, not for DKMs (Downloadable Kernel Modules). These two types +// of executables differ largely in the available functionality of +// the C-library, STL, and so on. A DKM uses a C89 library with no +// wide character support and no guarantee of ANSI C. The same Dinkum +// STL library is used in both contexts. +// +// Similarly the Dinkum abridged STL that supports the loosely specified +// embedded C++ standard has not been tested and is unlikely to work +// on anything but the simplest library. +// ==================================================================== +// +// Additional Configuration +// ------------------------------------------------------------------- +// +// Because of the ordering of include files and other issues the following +// additional definitions worked better outside this file. +// +// When building the log library add the following to the b2 invocation +// define=BOOST_LOG_WITHOUT_IPC +// and +// -DBOOST_LOG_WITHOUT_DEFAULT_FACTORIES +// to your compile options. +// +// When building the test library add +// -DBOOST_TEST_LIMITED_SIGNAL_DETAILS +// to your compile options +// +// When building containers library add +// -DHAVE_MORECORE=0 +// to your c compile options so dlmalloc heap library is compiled +// without brk() calls +// +// ==================================================================== +// +// Some important information regarding the usage of POSIX semaphores: +// ------------------------------------------------------------------- +// +// VxWorks as a real time operating system handles threads somewhat +// different from what "normal" OSes do, regarding their scheduling! +// This could lead to a scenario called "priority inversion" when using +// semaphores, see http://en.wikipedia.org/wiki/Priority_inversion. +// +// Now, VxWorks POSIX-semaphores for DKM's default to the usage of +// priority inverting semaphores, which is fine. On the other hand, +// for RTP's it defaults to using non priority inverting semaphores, +// which could easily pose a serious problem for a real time process. +// +// To change the default properties for POSIX-semaphores in VxWorks 7 +// enable core > CORE_USER Menu > DEFAULT_PTHREAD_PRIO_INHERIT +// +// In VxWorks 6.x so as to integrate with boost. +// - Edit the file +// installDir/vxworks-6.x/target/usr/src/posix/pthreadLib.c +// - Around line 917 there should be the definition of the default +// mutex attributes: +// +// LOCAL pthread_mutexattr_t defaultMutexAttr = +// { +// PTHREAD_INITIALIZED_OBJ, PTHREAD_PRIO_NONE, 0, +// PTHREAD_MUTEX_DEFAULT +// }; +// +// Here, replace PTHREAD_PRIO_NONE by PTHREAD_PRIO_INHERIT. +// - Around line 1236 there should be a definition for the function +// pthread_mutexattr_init(). A couple of lines below you should +// find a block of code like this: +// +// pAttr->mutexAttrStatus = PTHREAD_INITIALIZED_OBJ; +// pAttr->mutexAttrProtocol = PTHREAD_PRIO_NONE; +// pAttr->mutexAttrPrioceiling = 0; +// pAttr->mutexAttrType = PTHREAD_MUTEX_DEFAULT; +// +// Here again, replace PTHREAD_PRIO_NONE by PTHREAD_PRIO_INHERIT. +// - Finally, rebuild your VSB. This will rebuild the libraries +// with the changed properties. That's it! Now, using boost should +// no longer cause any problems with task deadlocks! +// +// ==================================================================== + +// Block out all versions before vxWorks 6.x, as these don't work: +// Include header with the vxWorks version information and query them +#include +#if !defined(_WRS_VXWORKS_MAJOR) || (_WRS_VXWORKS_MAJOR < 6) +# error "The vxWorks version you're using is so badly outdated,\ + it doesn't work at all with boost, sorry, no chance!" +#endif + +// Handle versions above 5.X but below 6.9 +#if (_WRS_VXWORKS_MAJOR == 6) && (_WRS_VXWORKS_MINOR < 9) +// TODO: Starting from what version does vxWorks work with boost? +// We can't reasonably insert a #warning "" as a user hint here, +// as this will show up with every file including some boost header, +// badly bugging the user... So for the time being we just leave it. +#endif + +// vxWorks specific config options: +// -------------------------------- +#define BOOST_PLATFORM "vxWorks" + +// Special behaviour for DKMs: +#ifdef _WRS_KERNEL + // DKMs do not have the -header, + // but apparently they do have an intrinsic wchar_t meanwhile! +# define BOOST_NO_CWCHAR + + // Lots of wide-functions and -headers are unavailable for DKMs as well: +# define BOOST_NO_CWCTYPE +# define BOOST_NO_SWPRINTF +# define BOOST_NO_STD_WSTRING +# define BOOST_NO_STD_WSTREAMBUF +#endif + +// Generally available headers: +#define BOOST_HAS_UNISTD_H +#define BOOST_HAS_STDINT_H +#define BOOST_HAS_DIRENT_H +#define BOOST_HAS_SLIST + +// vxWorks does not have installed an iconv-library by default, +// so unfortunately no Unicode support from scratch is available! +// Thus, instead it is suggested to switch to ICU, as this seems +// to be the most complete and portable option... +#define BOOST_LOCALE_WITH_ICU + +// Generally available functionality: +#define BOOST_HAS_THREADS +#define BOOST_HAS_NANOSLEEP +#define BOOST_HAS_GETTIMEOFDAY +#define BOOST_HAS_CLOCK_GETTIME +#define BOOST_HAS_MACRO_USE_FACET + +// Generally available threading API's: +#define BOOST_HAS_PTHREADS +#define BOOST_HAS_SCHED_YIELD +#define BOOST_HAS_SIGACTION + +// Functionality available for RTPs only: +#ifdef __RTP__ +# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE +# define BOOST_HAS_LOG1P +# define BOOST_HAS_EXPM1 +#endif + +// Functionality available for DKMs only: +#ifdef _WRS_KERNEL + // Luckily, at the moment there seems to be none! +#endif + +// These #defines allow detail/posix_features to work, since vxWorks doesn't +// #define them itself for DKMs (for RTPs on the contrary it does): +#ifdef _WRS_KERNEL +# ifndef _POSIX_TIMERS +# define _POSIX_TIMERS 1 +# endif +# ifndef _POSIX_THREADS +# define _POSIX_THREADS 1 +# endif +#endif + +#if (_WRS_VXWORKS_MAJOR < 7) +// vxWorks-around: #defines CLOCKS_PER_SEC as sysClkRateGet() but +// miserably fails to #include the required to make +// sysClkRateGet() available! So we manually include it here. +#ifdef __RTP__ +# include +# include +#endif + +// vxWorks-around: In the macros INT32_C(), UINT32_C(), INT64_C() and +// UINT64_C() are defined erroneously, yielding not a signed/ +// unsigned long/long long type, but a signed/unsigned int/long +// type. Eventually this leads to compile errors in ratio_fwd.hpp, +// when trying to define several constants which do not fit into a +// long type! We correct them here by redefining. + +#include + +// Some macro-magic to do the job +#define VX_JOIN(X, Y) VX_DO_JOIN(X, Y) +#define VX_DO_JOIN(X, Y) VX_DO_JOIN2(X, Y) +#define VX_DO_JOIN2(X, Y) X##Y + +// Correctly setup the macros +#undef INT32_C +#undef UINT32_C +#undef INT64_C +#undef UINT64_C +#define INT32_C(x) VX_JOIN(x, L) +#define UINT32_C(x) VX_JOIN(x, UL) +#define INT64_C(x) VX_JOIN(x, LL) +#define UINT64_C(x) VX_JOIN(x, ULL) + +// #include Libraries required for the following function adaption +#include +#endif // _WRS_VXWORKS_MAJOR < 7 + +#include +#include + +// Use C-linkage for the following helper functions +#ifdef __cplusplus +extern "C" { +#endif + +// vxWorks-around: The required functions getrlimit() and getrlimit() are missing. +// But we have the similar functions getprlimit() and setprlimit(), +// which may serve the purpose. +// Problem: The vxWorks-documentation regarding these functions +// doesn't deserve its name! It isn't documented what the first two +// parameters idtype and id mean, so we must fall back to an educated +// guess - null, argh... :-/ + +// TODO: getprlimit() and setprlimit() do exist for RTPs only, for whatever reason. +// Thus for DKMs there would have to be another implementation. +#if defined ( __RTP__) && (_WRS_VXWORKS_MAJOR < 7) + inline int getrlimit(int resource, struct rlimit *rlp){ + return getprlimit(0, 0, resource, rlp); + } + + inline int setrlimit(int resource, const struct rlimit *rlp){ + return setprlimit(0, 0, resource, const_cast(rlp)); + } +#endif + +// vxWorks has ftruncate() only, so we do simulate truncate(): +inline int truncate(const char *p, off_t l){ + int fd = open(p, O_WRONLY); + if (fd == -1){ + errno = EACCES; + return -1; + } + if (ftruncate(fd, l) == -1){ + close(fd); + errno = EACCES; + return -1; + } + return close(fd); +} + +#ifdef __GNUC__ +#define ___unused __attribute__((unused)) +#else +#define ___unused +#endif + +// Fake symlink handling by dummy functions: +inline int symlink(const char* path1 ___unused, const char* path2 ___unused){ + // vxWorks has no symlinks -> always return an error! + errno = EACCES; + return -1; +} + +inline ssize_t readlink(const char* path1 ___unused, char* path2 ___unused, size_t size ___unused){ + // vxWorks has no symlinks -> always return an error! + errno = EACCES; + return -1; +} + +#if (_WRS_VXWORKS_MAJOR < 7) + +inline int gettimeofday(struct timeval *tv, void * /*tzv*/) { + struct timespec ts; + clock_gettime(CLOCK_MONOTONIC, &ts); + tv->tv_sec = ts.tv_sec; + tv->tv_usec = ts.tv_nsec / 1000; + return 0; +} +#endif + +#ifdef __cplusplus +} // extern "C" +#endif + +/* + * moved to os/utils/unix/freind_h/times.h in VxWorks 7 + * to avoid conflict with MPL operator times + */ +#if (_WRS_VXWORKS_MAJOR < 7) +#ifdef __cplusplus + +// vxWorks provides neither struct tms nor function times()! +// We implement an empty dummy-function, simply setting the user +// and system time to the half of thew actual system ticks-value +// and the child user and system time to 0. +// Rather ugly but at least it suppresses compiler errors... +// Unfortunately, this of course *does* have an severe impact on +// dependant libraries, actually this is chrono only! Here it will +// not be possible to correctly use user and system times! But +// as vxWorks is lacking the ability to calculate user and system +// process times there seems to be no other possible solution. +struct tms{ + clock_t tms_utime; // User CPU time + clock_t tms_stime; // System CPU time + clock_t tms_cutime; // User CPU time of terminated child processes + clock_t tms_cstime; // System CPU time of terminated child processes +}; + + + inline clock_t times(struct tms *t){ + struct timespec ts; + clock_gettime(CLOCK_THREAD_CPUTIME_ID, &ts); + clock_t ticks(static_cast(static_cast(ts.tv_sec) * CLOCKS_PER_SEC + + static_cast(ts.tv_nsec) * CLOCKS_PER_SEC / 1000000.0)); + t->tms_utime = ticks/2U; + t->tms_stime = ticks/2U; + t->tms_cutime = 0; // vxWorks is lacking the concept of a child process! + t->tms_cstime = 0; // -> Set the wait times for childs to 0 + return ticks; +} + + +namespace std { + using ::times; +} +#endif // __cplusplus +#endif // _WRS_VXWORKS_MAJOR < 7 + + +#ifdef __cplusplus +extern "C" void bzero (void *, size_t); // FD_ZERO uses bzero() but doesn't include strings.h + +// Put the selfmade functions into the std-namespace, just in case +namespace std { +# ifdef __RTP__ + using ::getrlimit; + using ::setrlimit; +# endif + using ::truncate; + using ::symlink; + using ::readlink; +#if (_WRS_VXWORKS_MAJOR < 7) + using ::gettimeofday; +#endif +} +#endif // __cplusplus + +// Some more macro-magic: +// vxWorks-around: Some functions are not present or broken in vxWorks +// but may be patched to life via helper macros... + +// Include signal.h which might contain a typo to be corrected here +#include +#if (_WRS_VXWORKS_MAJOR < 7) +#define getpagesize() sysconf(_SC_PAGESIZE) // getpagesize is deprecated anyway! +inline int lstat(p, b) { return stat(p, b); } // lstat() == stat(), as vxWorks has no symlinks! +#endif +#ifndef S_ISSOCK +# define S_ISSOCK(mode) ((mode & S_IFMT) == S_IFSOCK) // Is file a socket? +#endif +#ifndef FPE_FLTINV +# define FPE_FLTINV (FPE_FLTSUB+1) // vxWorks has no FPE_FLTINV, so define one as a dummy +#endif +#if !defined(BUS_ADRALN) && defined(BUS_ADRALNR) +# define BUS_ADRALN BUS_ADRALNR // Correct a supposed typo in vxWorks' +#endif +typedef int locale_t; // locale_t is a POSIX-extension, currently not present in vxWorks! + +// #include boilerplate code: +#include + +// vxWorks lies about XSI conformance, there is no nl_types.h: +#undef BOOST_HAS_NL_TYPES_H + +// vxWorks 7 adds C++11 support +// however it is optional, and does not match exactly the support determined +// by examining the Dinkum STL version and GCC version (or ICC and DCC) +#ifndef _WRS_CONFIG_LANG_LIB_CPLUS_CPLUS_USER_2011 +# define BOOST_NO_CXX11_ADDRESSOF // C11 addressof operator on memory location +# define BOOST_NO_CXX11_ALLOCATOR +# define BOOST_NO_CXX11_ATOMIC_SMART_PTR +# define BOOST_NO_CXX11_NUMERIC_LIMITS // max_digits10 in test/../print_helper.hpp +# define BOOST_NO_CXX11_SMART_PTR +# define BOOST_NO_CXX11_STD_ALIGN + + +# define BOOST_NO_CXX11_HDR_ARRAY +# define BOOST_NO_CXX11_HDR_ATOMIC +# define BOOST_NO_CXX11_HDR_CHRONO +# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +# define BOOST_NO_CXX11_HDR_FORWARD_LIST //serialization/test/test_list.cpp +# define BOOST_NO_CXX11_HDR_FUNCTIONAL +# define BOOST_NO_CXX11_HDR_FUTURE +# define BOOST_NO_CXX11_HDR_MUTEX +# define BOOST_NO_CXX11_HDR_RANDOM //math/../test_data.hpp +# define BOOST_NO_CXX11_HDR_RATIO +# define BOOST_NO_CXX11_HDR_REGEX +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR +# define BOOST_NO_CXX11_HDR_THREAD +# define BOOST_NO_CXX11_HDR_TYPEINDEX +# define BOOST_NO_CXX11_HDR_TYPE_TRAITS +# define BOOST_NO_CXX11_HDR_TUPLE +# define BOOST_NO_CXX11_HDR_UNORDERED_MAP +# define BOOST_NO_CXX11_HDR_UNORDERED_SET +#else +#ifndef BOOST_SYSTEM_NO_DEPRECATED +# define BOOST_SYSTEM_NO_DEPRECATED // workaround link error in spirit +#endif +#endif + + +// NONE is used in enums in lamda and other libraries +#undef NONE +// restrict is an iostreams class +#undef restrict + +// use fake poll() from Unix layer in ASIO to get full functionality +// most libraries will use select() but this define allows 'iostream' functionality +// which is based on poll() only +#if (_WRS_VXWORKS_MAJOR > 6) +# ifndef BOOST_ASIO_HAS_POSIX_STREAM_DESCRIPTOR +# define BOOST_ASIO_HAS_POSIX_STREAM_DESCRIPTOR +# endif +#else +# define BOOST_ASIO_DISABLE_SERIAL_PORT +#endif + + diff --git a/libraries/boost/include/boost/config/platform/win32.hpp b/libraries/boost/include/boost/config/platform/win32.hpp new file mode 100644 index 0000000000..450158fbaa --- /dev/null +++ b/libraries/boost/include/boost/config/platform/win32.hpp @@ -0,0 +1,90 @@ +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Bill Kempf 2001. +// (C) Copyright Aleksey Gurtovoy 2003. +// (C) Copyright Rene Rivera 2005. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// Win32 specific config options: + +#define BOOST_PLATFORM "Win32" + +// Get the information about the MinGW runtime, i.e. __MINGW32_*VERSION. +#if defined(__MINGW32__) +# include <_mingw.h> +#endif + +#if defined(__GNUC__) && !defined(BOOST_NO_SWPRINTF) +# define BOOST_NO_SWPRINTF +#endif + +// Default defines for BOOST_SYMBOL_EXPORT and BOOST_SYMBOL_IMPORT +// If a compiler doesn't support __declspec(dllexport)/__declspec(dllimport), +// its boost/config/compiler/ file must define BOOST_SYMBOL_EXPORT and +// BOOST_SYMBOL_IMPORT +#ifndef BOOST_SYMBOL_EXPORT +# define BOOST_HAS_DECLSPEC +# define BOOST_SYMBOL_EXPORT __declspec(dllexport) +# define BOOST_SYMBOL_IMPORT __declspec(dllimport) +#endif + +#if defined(__MINGW32__) && ((__MINGW32_MAJOR_VERSION > 2) || ((__MINGW32_MAJOR_VERSION == 2) && (__MINGW32_MINOR_VERSION >= 0))) +# define BOOST_HAS_STDINT_H +# ifndef __STDC_LIMIT_MACROS +# define __STDC_LIMIT_MACROS +# endif +# define BOOST_HAS_DIRENT_H +# define BOOST_HAS_UNISTD_H +#endif + +#if defined(__MINGW32__) && (__GNUC__ >= 4) +// Mingw has these functions but there are persistent problems +// with calls to these crashing, so disable for now: +//# define BOOST_HAS_EXPM1 +//# define BOOST_HAS_LOG1P +# define BOOST_HAS_GETTIMEOFDAY +#endif +// +// Win32 will normally be using native Win32 threads, +// but there is a pthread library avaliable as an option, +// we used to disable this when BOOST_DISABLE_WIN32 was +// defined but no longer - this should allow some +// files to be compiled in strict mode - while maintaining +// a consistent setting of BOOST_HAS_THREADS across +// all translation units (needed for shared_ptr etc). +// + +#ifndef BOOST_HAS_PTHREADS +# define BOOST_HAS_WINTHREADS +#endif + +// +// WinCE configuration: +// +#if defined(_WIN32_WCE) || defined(UNDER_CE) +# define BOOST_NO_ANSI_APIS +// Windows CE does not have a conforming signature for swprintf +# define BOOST_NO_SWPRINTF +#else +# define BOOST_HAS_GETSYSTEMTIMEASFILETIME +# define BOOST_HAS_THREADEX +# define BOOST_HAS_GETSYSTEMTIMEASFILETIME +#endif + +// +// Windows Runtime +// +#if defined(WINAPI_FAMILY) && \ + (WINAPI_FAMILY == WINAPI_FAMILY_APP || WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP) +# define BOOST_NO_ANSI_APIS +#endif + +#ifndef BOOST_DISABLE_WIN32 +// WEK: Added +#define BOOST_HAS_FTIME +#define BOOST_WINDOWS 1 + +#endif diff --git a/libraries/boost/include/boost/config/platform/zos.hpp b/libraries/boost/include/boost/config/platform/zos.hpp new file mode 100644 index 0000000000..fa77999edc --- /dev/null +++ b/libraries/boost/include/boost/config/platform/zos.hpp @@ -0,0 +1,32 @@ +// Copyright (c) 2017 Dynatrace +// +// 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 + +// See http://www.boost.org for most recent version. + +// Platform setup for IBM z/OS. + +#define BOOST_PLATFORM "IBM z/OS" + +#include // For __UU, __C99, __TR1, ... + +#if defined(__UU) +# define BOOST_HAS_GETTIMEOFDAY +#endif + +#if defined(_OPEN_THREADS) || defined(__SUSV3_THR) +# define BOOST_HAS_PTHREADS +# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE +# define BOOST_HAS_THREADS +#endif + +#if defined(__SUSV3) || defined(__SUSV3_THR) +# define BOOST_HAS_SCHED_YIELD +#endif + +#define BOOST_HAS_SIGACTION +#define BOOST_HAS_UNISTD_H +#define BOOST_HAS_DIRENT_H +#define BOOST_HAS_NL_TYPES_H diff --git a/libraries/boost/include/boost/config/pragma_message.hpp b/libraries/boost/include/boost/config/pragma_message.hpp new file mode 100644 index 0000000000..b2c5ff2e86 --- /dev/null +++ b/libraries/boost/include/boost/config/pragma_message.hpp @@ -0,0 +1,31 @@ +#ifndef BOOST_CONFIG_PRAGMA_MESSAGE_HPP_INCLUDED +#define BOOST_CONFIG_PRAGMA_MESSAGE_HPP_INCLUDED + +// Copyright 2017 Peter Dimov. +// +// 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 +// +// BOOST_PRAGMA_MESSAGE("message") +// +// Expands to the equivalent of #pragma message("message") +// +// Note that this header is C compatible. + +#include + +#if defined(BOOST_DISABLE_PRAGMA_MESSAGE) +# define BOOST_PRAGMA_MESSAGE(x) +#elif defined(__INTEL_COMPILER) +# define BOOST_PRAGMA_MESSAGE(x) __pragma(message(__FILE__ "(" BOOST_STRINGIZE(__LINE__) "): note: " x)) +#elif defined(__GNUC__) +# define BOOST_PRAGMA_MESSAGE(x) _Pragma(BOOST_STRINGIZE(message(x))) +#elif defined(_MSC_VER) +# define BOOST_PRAGMA_MESSAGE(x) __pragma(message(__FILE__ "(" BOOST_STRINGIZE(__LINE__) "): note: " x)) +#else +# define BOOST_PRAGMA_MESSAGE(x) +#endif + +#endif // BOOST_CONFIG_PRAGMA_MESSAGE_HPP_INCLUDED diff --git a/libraries/boost/include/boost/config/requires_threads.hpp b/libraries/boost/include/boost/config/requires_threads.hpp new file mode 100644 index 0000000000..cfaff23027 --- /dev/null +++ b/libraries/boost/include/boost/config/requires_threads.hpp @@ -0,0 +1,92 @@ +// (C) Copyright John Maddock 2003. +// Use, modification and distribution are subject to 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) + + +#ifndef BOOST_CONFIG_REQUIRES_THREADS_HPP +#define BOOST_CONFIG_REQUIRES_THREADS_HPP + +#ifndef BOOST_CONFIG_HPP +# include +#endif + +#if defined(BOOST_DISABLE_THREADS) + +// +// special case to handle versions of gcc which don't currently support threads: +// +#if defined(__GNUC__) && ((__GNUC__ < 3) || (__GNUC_MINOR__ <= 3) || !defined(BOOST_STRICT_CONFIG)) +// +// this is checked up to gcc 3.3: +// +#if defined(__sgi) || defined(__hpux) +# error "Multi-threaded programs are not supported by gcc on HPUX or Irix (last checked with gcc 3.3)" +#endif + +#endif + +# error "Threading support unavaliable: it has been explicitly disabled with BOOST_DISABLE_THREADS" + +#elif !defined(BOOST_HAS_THREADS) + +# if defined __COMO__ +// Comeau C++ +# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -D_MT (Windows) or -D_REENTRANT (Unix)" + +#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC) +// Intel +#ifdef _WIN32 +# error "Compiler threading support is not turned on. Please set the correct command line options for threading: either /MT /MTd /MD or /MDd" +#else +# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -openmp" +#endif + +# elif defined __GNUC__ +// GNU C++: +# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread (Linux), -pthreads (Solaris) or -mthreads (Mingw32)" + +#elif defined __sgi +// SGI MIPSpro C++ +# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -D_SGI_MP_SOURCE" + +#elif defined __DECCXX +// Compaq Tru64 Unix cxx +# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread" + +#elif defined __BORLANDC__ +// Borland +# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -tWM" + +#elif defined __MWERKS__ +// Metrowerks CodeWarrior +# error "Compiler threading support is not turned on. Please set the correct command line options for threading: either -runtime sm, -runtime smd, -runtime dm, or -runtime dmd" + +#elif defined __SUNPRO_CC +// Sun Workshop Compiler C++ +# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -mt" + +#elif defined __HP_aCC +// HP aCC +# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -mt" + +#elif defined(__IBMCPP__) +// IBM Visual Age +# error "Compiler threading support is not turned on. Please compile the code with the xlC_r compiler" + +#elif defined _MSC_VER +// Microsoft Visual C++ +// +// Must remain the last #elif since some other vendors (Metrowerks, for +// example) also #define _MSC_VER +# error "Compiler threading support is not turned on. Please set the correct command line options for threading: either /MT /MTd /MD or /MDd" + +#else + +# error "Compiler threading support is not turned on. Please consult your compiler's documentation for the appropriate options to use" + +#endif // compilers + +#endif // BOOST_HAS_THREADS + +#endif // BOOST_CONFIG_REQUIRES_THREADS_HPP diff --git a/libraries/boost/include/boost/config/stdlib/dinkumware.hpp b/libraries/boost/include/boost/config/stdlib/dinkumware.hpp new file mode 100644 index 0000000000..641c2ae2e8 --- /dev/null +++ b/libraries/boost/include/boost/config/stdlib/dinkumware.hpp @@ -0,0 +1,258 @@ +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Jens Maurer 2001. +// (C) Copyright Peter Dimov 2001. +// (C) Copyright David Abrahams 2002. +// (C) Copyright Guillaume Melquiond 2003. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// Dinkumware standard library config: + +#if !defined(_YVALS) && !defined(_CPPLIB_VER) +#include +#if !defined(_YVALS) && !defined(_CPPLIB_VER) +#error This is not the Dinkumware lib! +#endif +#endif + + +#if defined(_CPPLIB_VER) && (_CPPLIB_VER >= 306) + // full dinkumware 3.06 and above + // fully conforming provided the compiler supports it: +# if !(defined(_GLOBAL_USING) && (_GLOBAL_USING+0 > 0)) && !defined(__BORLANDC__) && !defined(_STD) && !(defined(__ICC) && (__ICC >= 700)) // can be defined in yvals.h +# define BOOST_NO_STDC_NAMESPACE +# endif +# if !(defined(_HAS_MEMBER_TEMPLATES_REBIND) && (_HAS_MEMBER_TEMPLATES_REBIND+0 > 0)) && !(defined(_MSC_VER) && (_MSC_VER > 1300)) && defined(BOOST_MSVC) +# define BOOST_NO_STD_ALLOCATOR +# endif +# define BOOST_HAS_PARTIAL_STD_ALLOCATOR +# if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) + // if this lib version is set up for vc6 then there is no std::use_facet: +# define BOOST_NO_STD_USE_FACET +# define BOOST_HAS_TWO_ARG_USE_FACET + // C lib functions aren't in namespace std either: +# define BOOST_NO_STDC_NAMESPACE + // and nor is +# define BOOST_NO_EXCEPTION_STD_NAMESPACE +# endif +// There's no numeric_limits support unless _LONGLONG is defined: +# if !defined(_LONGLONG) && (_CPPLIB_VER <= 310) +# define BOOST_NO_MS_INT64_NUMERIC_LIMITS +# endif +// 3.06 appears to have (non-sgi versions of) & , +// and no at all +#else +# define BOOST_MSVC_STD_ITERATOR 1 +# define BOOST_NO_STD_ITERATOR +# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS +# define BOOST_NO_STD_ALLOCATOR +# define BOOST_NO_STDC_NAMESPACE +# define BOOST_NO_STD_USE_FACET +# define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN +# define BOOST_HAS_MACRO_USE_FACET +# ifndef _CPPLIB_VER + // Updated Dinkum library defines this, and provides + // its own min and max definitions, as does MTA version. +# ifndef __MTA__ +# define BOOST_NO_STD_MIN_MAX +# endif +# define BOOST_NO_MS_INT64_NUMERIC_LIMITS +# endif +#endif + +// +// std extension namespace is stdext for vc7.1 and later, +// the same applies to other compilers that sit on top +// of vc7.1 (Intel and Comeau): +// +#if defined(_MSC_VER) && (_MSC_VER >= 1310) && !defined(__BORLANDC__) +# define BOOST_STD_EXTENSION_NAMESPACE stdext +#endif + + +#if (defined(_MSC_VER) && (_MSC_VER <= 1300) && !defined(__BORLANDC__)) || !defined(_CPPLIB_VER) || (_CPPLIB_VER < 306) + // if we're using a dinkum lib that's + // been configured for VC6/7 then there is + // no iterator traits (true even for icl) +# define BOOST_NO_STD_ITERATOR_TRAITS +#endif + +#if defined(__ICL) && (__ICL < 800) && defined(_CPPLIB_VER) && (_CPPLIB_VER <= 310) +// Intel C++ chokes over any non-trivial use of +// this may be an overly restrictive define, but regex fails without it: +# define BOOST_NO_STD_LOCALE +#endif + +// Fix for VC++ 8.0 on up ( I do not have a previous version to test ) +// or clang-cl. If exceptions are off you must manually include the +// header before including the header. Admittedly +// trying to use Boost libraries or the standard C++ libraries without +// exception support is not suggested but currently clang-cl ( v 3.4 ) +// does not support exceptions and must be compiled with exceptions off. +#if !_HAS_EXCEPTIONS && ((defined(BOOST_MSVC) && BOOST_MSVC >= 1400) || (defined(__clang__) && defined(_MSC_VER))) +#include +#endif +#include +#if ( (!_HAS_EXCEPTIONS && !defined(__ghs__)) || (!_HAS_NAMESPACE && defined(__ghs__)) ) && !defined(__TI_COMPILER_VERSION__) && !defined(__VISUALDSPVERSION__) \ + && !defined(__VXWORKS__) +# define BOOST_NO_STD_TYPEINFO +#endif + +// C++0x headers implemented in 520 (as shipped by Microsoft) +// +#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 520 +# define BOOST_NO_CXX11_HDR_ARRAY +# define BOOST_NO_CXX11_HDR_CODECVT +# define BOOST_NO_CXX11_HDR_FORWARD_LIST +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +# define BOOST_NO_CXX11_HDR_RANDOM +# define BOOST_NO_CXX11_HDR_REGEX +# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR +# define BOOST_NO_CXX11_HDR_UNORDERED_MAP +# define BOOST_NO_CXX11_HDR_UNORDERED_SET +# define BOOST_NO_CXX11_HDR_TUPLE +# define BOOST_NO_CXX11_HDR_TYPEINDEX +# define BOOST_NO_CXX11_HDR_FUNCTIONAL +# define BOOST_NO_CXX11_NUMERIC_LIMITS +# define BOOST_NO_CXX11_SMART_PTR +#endif + +#if ((!defined(_HAS_TR1_IMPORTS) || (_HAS_TR1_IMPORTS+0 == 0)) && !defined(BOOST_NO_CXX11_HDR_TUPLE)) \ + && (!defined(_CPPLIB_VER) || _CPPLIB_VER < 610) +# define BOOST_NO_CXX11_HDR_TUPLE +#endif + +// C++0x headers implemented in 540 (as shipped by Microsoft) +// +#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 540 +# define BOOST_NO_CXX11_HDR_TYPE_TRAITS +# define BOOST_NO_CXX11_HDR_CHRONO +# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +# define BOOST_NO_CXX11_HDR_FUTURE +# define BOOST_NO_CXX11_HDR_MUTEX +# define BOOST_NO_CXX11_HDR_RATIO +# define BOOST_NO_CXX11_HDR_THREAD +# define BOOST_NO_CXX11_ATOMIC_SMART_PTR +#endif + +// C++0x headers implemented in 610 (as shipped by Microsoft) +// +#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 610 +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +# define BOOST_NO_CXX11_HDR_ATOMIC +# define BOOST_NO_CXX11_ALLOCATOR +// 540 has std::align but it is not a conforming implementation +# define BOOST_NO_CXX11_STD_ALIGN +#endif + +// Before 650 std::pointer_traits has a broken rebind template +#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 650 +# define BOOST_NO_CXX11_POINTER_TRAITS +#elif defined(BOOST_MSVC) && BOOST_MSVC < 1910 +# define BOOST_NO_CXX11_POINTER_TRAITS +#endif + +#if defined(__has_include) +#if !__has_include() +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#elif (__cplusplus < 201402) && !defined(_MSC_VER) +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif +#elif !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650) +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif + +// C++14 features +#if !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650) +# define BOOST_NO_CXX14_STD_EXCHANGE +#endif + +// C++17 features +#if !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650) || !defined(BOOST_MSVC) || (BOOST_MSVC < 1910) || !defined(_HAS_CXX17) || (_HAS_CXX17 == 0) +# define BOOST_NO_CXX17_STD_APPLY +# define BOOST_NO_CXX17_ITERATOR_TRAITS +#endif +#if !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650) +# define BOOST_NO_CXX17_STD_INVOKE +#endif + +#if !(!defined(_CPPLIB_VER) || (_CPPLIB_VER < 650) || !defined(BOOST_MSVC) || (BOOST_MSVC < 1912) || !defined(_HAS_CXX17) || (_HAS_CXX17 == 0)) +// Deprecated std::iterator: +# define BOOST_NO_STD_ITERATOR +#endif + +#if defined(BOOST_INTEL) && (BOOST_INTEL <= 1400) +// Intel's compiler can't handle this header yet: +# define BOOST_NO_CXX11_HDR_ATOMIC +#endif + + +// 520..610 have std::addressof, but it doesn't support functions +// +#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 650 +# define BOOST_NO_CXX11_ADDRESSOF +#endif + +// Bug specific to VC14, +// See https://connect.microsoft.com/VisualStudio/feedback/details/1348277/link-error-when-using-std-codecvt-utf8-utf16-char16-t +// and discussion here: http://blogs.msdn.com/b/vcblog/archive/2014/11/12/visual-studio-2015-preview-now-available.aspx?PageIndex=2 +#if defined(_CPPLIB_VER) && (_CPPLIB_VER == 650) +# define BOOST_NO_CXX11_HDR_CODECVT +#endif + +#if defined(_CPPLIB_VER) && (_CPPLIB_VER >= 650) +// If _HAS_AUTO_PTR_ETC is defined to 0, std::auto_ptr and std::random_shuffle are not available. +// See https://www.visualstudio.com/en-us/news/vs2015-vs.aspx#C++ +// and http://blogs.msdn.com/b/vcblog/archive/2015/06/19/c-11-14-17-features-in-vs-2015-rtm.aspx +# if defined(_HAS_AUTO_PTR_ETC) && (_HAS_AUTO_PTR_ETC == 0) +# define BOOST_NO_AUTO_PTR +# define BOOST_NO_CXX98_RANDOM_SHUFFLE +# define BOOST_NO_CXX98_FUNCTION_BASE +# define BOOST_NO_CXX98_BINDERS +# endif +#endif + + +// +// Things not supported by the CLR: +#ifdef _M_CEE +#ifndef BOOST_NO_CXX11_HDR_MUTEX +# define BOOST_NO_CXX11_HDR_MUTEX +#endif +#ifndef BOOST_NO_CXX11_HDR_ATOMIC +# define BOOST_NO_CXX11_HDR_ATOMIC +#endif +#ifndef BOOST_NO_CXX11_HDR_FUTURE +# define BOOST_NO_CXX11_HDR_FUTURE +#endif +#ifndef BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +#endif +#ifndef BOOST_NO_CXX11_HDR_THREAD +# define BOOST_NO_CXX11_HDR_THREAD +#endif +#ifndef BOOST_NO_CXX14_HDR_SHARED_MUTEX +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif +#ifndef BOOST_NO_CXX14_STD_EXCHANGE +# define BOOST_NO_CXX14_STD_EXCHANGE +#endif +#ifndef BOOST_NO_FENV_H +# define BOOST_NO_FENV_H +#endif +#endif + +#ifdef _CPPLIB_VER +# define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER +#else +# define BOOST_DINKUMWARE_STDLIB 1 +#endif + +#ifdef _CPPLIB_VER +# define BOOST_STDLIB "Dinkumware standard library version " BOOST_STRINGIZE(_CPPLIB_VER) +#else +# define BOOST_STDLIB "Dinkumware standard library version 1.x" +#endif diff --git a/libraries/boost/include/boost/config/stdlib/libcomo.hpp b/libraries/boost/include/boost/config/stdlib/libcomo.hpp new file mode 100644 index 0000000000..75ac2bb76a --- /dev/null +++ b/libraries/boost/include/boost/config/stdlib/libcomo.hpp @@ -0,0 +1,92 @@ +// (C) Copyright John Maddock 2002 - 2003. +// (C) Copyright Jens Maurer 2002 - 2003. +// (C) Copyright Beman Dawes 2002 - 2003. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// Comeau STL: + +#if !defined(__LIBCOMO__) +# include +# if !defined(__LIBCOMO__) +# error "This is not the Comeau STL!" +# endif +#endif + +// +// std::streambuf is non-standard +// NOTE: versions of libcomo prior to beta28 have octal version numbering, +// e.g. version 25 is 21 (dec) +#if __LIBCOMO_VERSION__ <= 22 +# define BOOST_NO_STD_WSTREAMBUF +#endif + +#if (__LIBCOMO_VERSION__ <= 31) && defined(_WIN32) +#define BOOST_NO_SWPRINTF +#endif + +#if __LIBCOMO_VERSION__ >= 31 +# define BOOST_HAS_HASH +# define BOOST_HAS_SLIST +#endif + +// C++0x headers not yet implemented +// +# define BOOST_NO_CXX11_HDR_ARRAY +# define BOOST_NO_CXX11_HDR_CHRONO +# define BOOST_NO_CXX11_HDR_CODECVT +# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +# define BOOST_NO_CXX11_HDR_FORWARD_LIST +# define BOOST_NO_CXX11_HDR_FUTURE +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +# define BOOST_NO_CXX11_HDR_MUTEX +# define BOOST_NO_CXX11_HDR_RANDOM +# define BOOST_NO_CXX11_HDR_RATIO +# define BOOST_NO_CXX11_HDR_REGEX +# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR +# define BOOST_NO_CXX11_HDR_THREAD +# define BOOST_NO_CXX11_HDR_TUPLE +# define BOOST_NO_CXX11_HDR_TYPE_TRAITS +# define BOOST_NO_CXX11_HDR_TYPEINDEX +# define BOOST_NO_CXX11_HDR_UNORDERED_MAP +# define BOOST_NO_CXX11_HDR_UNORDERED_SET +# define BOOST_NO_CXX11_NUMERIC_LIMITS +# define BOOST_NO_CXX11_ALLOCATOR +# define BOOST_NO_CXX11_POINTER_TRAITS +# define BOOST_NO_CXX11_ATOMIC_SMART_PTR +# define BOOST_NO_CXX11_SMART_PTR +# define BOOST_NO_CXX11_HDR_FUNCTIONAL +# define BOOST_NO_CXX11_HDR_ATOMIC +# define BOOST_NO_CXX11_STD_ALIGN +# define BOOST_NO_CXX11_ADDRESSOF + +#if defined(__has_include) +#if !__has_include() +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#elif __cplusplus < 201402 +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif +#else +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif + +// C++14 features +# define BOOST_NO_CXX14_STD_EXCHANGE + +// C++17 features +# define BOOST_NO_CXX17_STD_APPLY +# define BOOST_NO_CXX17_STD_INVOKE +# define BOOST_NO_CXX17_ITERATOR_TRAITS + +// +// Intrinsic type_traits support. +// The SGI STL has it's own __type_traits class, which +// has intrinsic compiler support with SGI's compilers. +// Whatever map SGI style type traits to boost equivalents: +// +#define BOOST_HAS_SGI_TYPE_TRAITS + +#define BOOST_STDLIB "Comeau standard library " BOOST_STRINGIZE(__LIBCOMO_VERSION__) diff --git a/libraries/boost/include/boost/config/stdlib/libcpp.hpp b/libraries/boost/include/boost/config/stdlib/libcpp.hpp new file mode 100644 index 0000000000..1e77dca336 --- /dev/null +++ b/libraries/boost/include/boost/config/stdlib/libcpp.hpp @@ -0,0 +1,133 @@ +// (C) Copyright Christopher Jefferson 2011. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// config for libc++ +// Might need more in here later. + +#if !defined(_LIBCPP_VERSION) +# include +# if !defined(_LIBCPP_VERSION) +# error "This is not libc++!" +# endif +#endif + +#define BOOST_STDLIB "libc++ version " BOOST_STRINGIZE(_LIBCPP_VERSION) + +#define BOOST_HAS_THREADS + +#ifdef _LIBCPP_HAS_NO_VARIADICS +# define BOOST_NO_CXX11_HDR_TUPLE +#endif + +// BOOST_NO_CXX11_ALLOCATOR should imply no support for the C++11 +// allocator model. The C++11 allocator model requires a conforming +// std::allocator_traits which is only possible with C++11 template +// aliases since members rebind_alloc and rebind_traits require it. +#if defined(_LIBCPP_HAS_NO_TEMPLATE_ALIASES) +# define BOOST_NO_CXX11_ALLOCATOR +# define BOOST_NO_CXX11_POINTER_TRAITS +#endif + +#if __cplusplus < 201103 +// +// These two appear to be somewhat useable in C++03 mode, there may be others... +// +//# define BOOST_NO_CXX11_HDR_ARRAY +//# define BOOST_NO_CXX11_HDR_FORWARD_LIST + +# define BOOST_NO_CXX11_HDR_CODECVT +# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +# define BOOST_NO_CXX11_HDR_MUTEX +# define BOOST_NO_CXX11_HDR_RANDOM +# define BOOST_NO_CXX11_HDR_RATIO +# define BOOST_NO_CXX11_HDR_REGEX +# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR +# define BOOST_NO_CXX11_HDR_THREAD +# define BOOST_NO_CXX11_HDR_TUPLE +# define BOOST_NO_CXX11_HDR_TYPEINDEX +# define BOOST_NO_CXX11_HDR_UNORDERED_MAP +# define BOOST_NO_CXX11_HDR_UNORDERED_SET +# define BOOST_NO_CXX11_NUMERIC_LIMITS +# define BOOST_NO_CXX11_ALLOCATOR +# define BOOST_NO_CXX11_POINTER_TRAITS +# define BOOST_NO_CXX11_SMART_PTR +# define BOOST_NO_CXX11_HDR_FUNCTIONAL +# define BOOST_NO_CXX11_STD_ALIGN +# define BOOST_NO_CXX11_ADDRESSOF +# define BOOST_NO_CXX11_HDR_ATOMIC +# define BOOST_NO_CXX11_ATOMIC_SMART_PTR +# define BOOST_NO_CXX11_HDR_CHRONO +# define BOOST_NO_CXX11_HDR_TYPE_TRAITS +# define BOOST_NO_CXX11_HDR_FUTURE +#elif _LIBCPP_VERSION < 3700 +// +// These appear to be unusable/incomplete so far: +// +# define BOOST_NO_CXX11_HDR_ATOMIC +# define BOOST_NO_CXX11_ATOMIC_SMART_PTR +# define BOOST_NO_CXX11_HDR_CHRONO +# define BOOST_NO_CXX11_HDR_TYPE_TRAITS +# define BOOST_NO_CXX11_HDR_FUTURE +#endif + + +#if _LIBCPP_VERSION < 3700 +// libc++ uses a non-standard messages_base +#define BOOST_NO_STD_MESSAGES +#endif + +// C++14 features +#if (_LIBCPP_VERSION < 3700) || (__cplusplus <= 201402L) +# define BOOST_NO_CXX14_STD_EXCHANGE +#endif + +// C++17 features +#if (_LIBCPP_VERSION < 3700) || (__cplusplus <= 201402L) +# define BOOST_NO_CXX17_STD_INVOKE +#endif +#if (_LIBCPP_VERSION < 4000) || (__cplusplus <= 201402L) +# define BOOST_NO_CXX17_STD_APPLY +#endif +#if (_LIBCPP_VERSION > 4000) && (__cplusplus > 201402L) && !defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR) +# define BOOST_NO_AUTO_PTR +#endif +#if (_LIBCPP_VERSION > 4000) && (__cplusplus > 201402L) && !defined(_LIBCPP_ENABLE_CXX17_REMOVED_RANDOM_SHUFFLE) +# define BOOST_NO_CXX98_RANDOM_SHUFFLE +#endif +#if (_LIBCPP_VERSION > 4000) && (__cplusplus > 201402L) && !defined(_LIBCPP_ENABLE_CXX17_REMOVED_BINDERS) +# define BOOST_NO_CXX98_BINDERS +#endif + +#define BOOST_NO_CXX17_ITERATOR_TRAITS + +#if (_LIBCPP_VERSION <= 1101) && !defined(BOOST_NO_CXX11_THREAD_LOCAL) +// This is a bit of a sledgehammer, because really it's just libc++abi that has no +// support for thread_local, leading to linker errors such as +// "undefined reference to `__cxa_thread_atexit'". It is fixed in the +// most recent releases of libc++abi though... +# define BOOST_NO_CXX11_THREAD_LOCAL +#endif + +#if defined(__linux__) && !defined(BOOST_NO_CXX11_THREAD_LOCAL) +// After libc++-dev is installed on Trusty, clang++-libc++ almost works, +// except uses of `thread_local` fail with undefined reference to +// `__cxa_thread_atexit`. +# define BOOST_NO_CXX11_THREAD_LOCAL +#endif + +#if defined(__has_include) +#if !__has_include() +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#elif __cplusplus <= 201103 +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif +#elif __cplusplus < 201402 +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif + +// --- end --- diff --git a/libraries/boost/include/boost/config/stdlib/libstdcpp3.hpp b/libraries/boost/include/boost/config/stdlib/libstdcpp3.hpp new file mode 100644 index 0000000000..e99fe316df --- /dev/null +++ b/libraries/boost/include/boost/config/stdlib/libstdcpp3.hpp @@ -0,0 +1,349 @@ +// (C) Copyright John Maddock 2001. +// (C) Copyright Jens Maurer 2001. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// config for libstdc++ v3 +// not much to go in here: + +#define BOOST_GNU_STDLIB 1 + +#ifdef __GLIBCXX__ +#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCXX__) +#else +#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCPP__) +#endif + +#if !defined(_GLIBCPP_USE_WCHAR_T) && !defined(_GLIBCXX_USE_WCHAR_T) +# define BOOST_NO_CWCHAR +# define BOOST_NO_CWCTYPE +# define BOOST_NO_STD_WSTRING +# define BOOST_NO_STD_WSTREAMBUF +#endif + +#if defined(__osf__) && !defined(_REENTRANT) \ + && ( defined(_GLIBCXX_HAVE_GTHR_DEFAULT) || defined(_GLIBCPP_HAVE_GTHR_DEFAULT) ) +// GCC 3 on Tru64 forces the definition of _REENTRANT when any std lib header +// file is included, therefore for consistency we define it here as well. +# define _REENTRANT +#endif + +#ifdef __GLIBCXX__ // gcc 3.4 and greater: +# if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \ + || defined(_GLIBCXX__PTHREADS) \ + || defined(_GLIBCXX_HAS_GTHREADS) \ + || defined(_WIN32) \ + || defined(_AIX) \ + || defined(__HAIKU__) + // + // If the std lib has thread support turned on, then turn it on in Boost + // as well. We do this because some gcc-3.4 std lib headers define _REENTANT + // while others do not... + // +# define BOOST_HAS_THREADS +# else +# define BOOST_DISABLE_THREADS +# endif +#elif defined(__GLIBCPP__) \ + && !defined(_GLIBCPP_HAVE_GTHR_DEFAULT) \ + && !defined(_GLIBCPP__PTHREADS) + // disable thread support if the std lib was built single threaded: +# define BOOST_DISABLE_THREADS +#endif + +#if (defined(linux) || defined(__linux) || defined(__linux__)) && defined(__arm__) && defined(_GLIBCPP_HAVE_GTHR_DEFAULT) +// linux on arm apparently doesn't define _REENTRANT +// so just turn on threading support whenever the std lib is thread safe: +# define BOOST_HAS_THREADS +#endif + +#if !defined(_GLIBCPP_USE_LONG_LONG) \ + && !defined(_GLIBCXX_USE_LONG_LONG)\ + && defined(BOOST_HAS_LONG_LONG) +// May have been set by compiler/*.hpp, but "long long" without library +// support is useless. +# undef BOOST_HAS_LONG_LONG +#endif + +// Apple doesn't seem to reliably defined a *unix* macro +#if !defined(CYGWIN) && ( defined(__unix__) \ + || defined(__unix) \ + || defined(unix) \ + || defined(__APPLE__) \ + || defined(__APPLE) \ + || defined(APPLE)) +# include +#endif + +#ifndef __VXWORKS__ // VxWorks uses Dinkum, not GNU STL with GCC +#if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0 +# define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx +# define BOOST_HAS_SLIST +# define BOOST_HAS_HASH +# define BOOST_SLIST_HEADER +# if !defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3) +# define BOOST_HASH_SET_HEADER +# define BOOST_HASH_MAP_HEADER +# else +# define BOOST_HASH_SET_HEADER +# define BOOST_HASH_MAP_HEADER +# endif +#endif +#endif + +// +// Decide whether we have C++11 support turned on: +// +#if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103) +# define BOOST_LIBSTDCXX11 +#endif + +// +// Decide which version of libstdc++ we have, normally +// libstdc++ C++0x support is detected via __GNUC__, __GNUC_MINOR__, and possibly +// __GNUC_PATCHLEVEL__ at the suggestion of Jonathan Wakely, one of the libstdc++ +// developers. He also commented: +// +// "I'm not sure how useful __GLIBCXX__ is for your purposes, for instance in +// GCC 4.2.4 it is set to 20080519 but in GCC 4.3.0 it is set to 20080305. +// Although 4.3.0 was released earlier than 4.2.4, it has better C++0x support +// than any release in the 4.2 series." +// +// Another resource for understanding libstdc++ features is: +// http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#manual.intro.status.standard.200x +// +// However, using the GCC version number fails when the compiler is clang since this +// only ever claims to emulate GCC-4.2, see https://svn.boost.org/trac/boost/ticket/7473 +// for a long discussion on this issue. What we can do though is use clang's __has_include +// to detect the presence of a C++11 header that was introduced with a specific GCC release. +// We still have to be careful though as many such headers were buggy and/or incomplete when +// first introduced, so we only check for headers that were fully featured from day 1, and then +// use that to infer the underlying GCC version: +// +#ifdef __clang__ + +#if __has_include() +# define BOOST_LIBSTDCXX_VERSION 60100 +#elif __has_include() +# define BOOST_LIBSTDCXX_VERSION 50100 +#elif __has_include() +# define BOOST_LIBSTDCXX_VERSION 40900 +#elif __has_include() +# define BOOST_LIBSTDCXX_VERSION 40800 +#elif __has_include() +# define BOOST_LIBSTDCXX_VERSION 40700 +#elif __has_include() +# define BOOST_LIBSTDCXX_VERSION 40600 +#elif __has_include() +# define BOOST_LIBSTDCXX_VERSION 40500 +#elif __has_include() +# define BOOST_LIBSTDCXX_VERSION 40400 +#elif __has_include() +# define BOOST_LIBSTDCXX_VERSION 40300 +#endif + +#if (BOOST_LIBSTDCXX_VERSION < 50100) +// libstdc++ does not define this function as it's deprecated in C++11, but clang still looks for it, +// defining it here is a terrible cludge, but should get things working: +extern "C" char *gets (char *__s); +#endif +// +// clang is unable to parse some GCC headers, add those workarounds here: +// +#if BOOST_LIBSTDCXX_VERSION < 50000 +# define BOOST_NO_CXX11_HDR_REGEX +#endif +// +// GCC 4.7.x has no __cxa_thread_atexit which +// thread_local objects require for cleanup: +// +#if BOOST_LIBSTDCXX_VERSION < 40800 +# define BOOST_NO_CXX11_THREAD_LOCAL +#endif +// +// Early clang versions can handle , not exactly sure which versions +// but certainly up to clang-3.8 and gcc-4.6: +// +#if (__clang_major__ < 5) +# if BOOST_LIBSTDCXX_VERSION < 40800 +# define BOOST_NO_CXX11_HDR_FUTURE +# define BOOST_NO_CXX11_HDR_MUTEX +# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +# define BOOST_NO_CXX11_HDR_CHRONO +# endif +#endif + +// +// GCC 4.8 and 9 add working versions of and respectively. +// However, we have no test for these as the headers were present but broken +// in early GCC versions. +// +#endif + +#if defined(__SUNPRO_CC) && (__SUNPRO_CC >= 0x5130) && (__cplusplus >= 201103L) +// +// Oracle Solaris compiler uses it's own verison of libstdc++ but doesn't +// set __GNUC__ +// +#if __SUNPRO_CC >= 0x5140 +#define BOOST_LIBSTDCXX_VERSION 50100 +#else +#define BOOST_LIBSTDCXX_VERSION 40800 +#endif +#endif + +#if !defined(BOOST_LIBSTDCXX_VERSION) +# define BOOST_LIBSTDCXX_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) +#endif + +// std::auto_ptr isn't provided with _GLIBCXX_DEPRECATED=0 (GCC 4.5 and earlier) +// or _GLIBCXX_USE_DEPRECATED=0 (GCC 4.6 and later). +#if defined(BOOST_LIBSTDCXX11) +# if BOOST_LIBSTDCXX_VERSION < 40600 +# if !_GLIBCXX_DEPRECATED +# define BOOST_NO_AUTO_PTR +# endif +# elif !_GLIBCXX_USE_DEPRECATED +# define BOOST_NO_AUTO_PTR +# endif +#endif + +// C++0x headers in GCC 4.3.0 and later +// +#if (BOOST_LIBSTDCXX_VERSION < 40300) || !defined(BOOST_LIBSTDCXX11) +# define BOOST_NO_CXX11_HDR_ARRAY +# define BOOST_NO_CXX11_HDR_TUPLE +# define BOOST_NO_CXX11_HDR_UNORDERED_MAP +# define BOOST_NO_CXX11_HDR_UNORDERED_SET +# define BOOST_NO_CXX11_HDR_FUNCTIONAL +#endif + +// C++0x headers in GCC 4.4.0 and later +// +#if (BOOST_LIBSTDCXX_VERSION < 40400) || !defined(BOOST_LIBSTDCXX11) +# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +# define BOOST_NO_CXX11_HDR_FORWARD_LIST +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +# define BOOST_NO_CXX11_HDR_MUTEX +# define BOOST_NO_CXX11_HDR_RATIO +# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR +# define BOOST_NO_CXX11_SMART_PTR +#else +# define BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG +# define BOOST_HAS_TR1_COMPLEX_OVERLOADS +#endif + +// C++0x features in GCC 4.5.0 and later +// +#if (BOOST_LIBSTDCXX_VERSION < 40500) || !defined(BOOST_LIBSTDCXX11) +# define BOOST_NO_CXX11_NUMERIC_LIMITS +# define BOOST_NO_CXX11_HDR_FUTURE +# define BOOST_NO_CXX11_HDR_RANDOM +#endif + +// C++0x features in GCC 4.6.0 and later +// +#if (BOOST_LIBSTDCXX_VERSION < 40600) || !defined(BOOST_LIBSTDCXX11) +# define BOOST_NO_CXX11_HDR_TYPEINDEX +# define BOOST_NO_CXX11_ADDRESSOF +# define BOOST_NO_CXX17_ITERATOR_TRAITS +#endif + +// C++0x features in GCC 4.7.0 and later +// +#if (BOOST_LIBSTDCXX_VERSION < 40700) || !defined(BOOST_LIBSTDCXX11) +// Note that although existed prior to 4.7, "steady_clock" is spelled "monotonic_clock" +// so 4.7.0 is the first truly conforming one. +# define BOOST_NO_CXX11_HDR_CHRONO +# define BOOST_NO_CXX11_ALLOCATOR +# define BOOST_NO_CXX11_POINTER_TRAITS +#endif +// C++0x features in GCC 4.8.0 and later +// +#if (BOOST_LIBSTDCXX_VERSION < 40800) || !defined(BOOST_LIBSTDCXX11) +// Note that although existed prior to gcc 4.8 it was largely unimplemented for many types: +# define BOOST_NO_CXX11_HDR_ATOMIC +# define BOOST_NO_CXX11_HDR_THREAD +#endif +// C++0x features in GCC 4.9.0 and later +// +#if (BOOST_LIBSTDCXX_VERSION < 40900) || !defined(BOOST_LIBSTDCXX11) +// Although is present and compilable against, the actual implementation is not functional +// even for the simplest patterns such as "\d" or "[0-9]". This is the case at least in gcc up to 4.8, inclusively. +# define BOOST_NO_CXX11_HDR_REGEX +#endif +#if (BOOST_LIBSTDCXX_VERSION < 40900) || (__cplusplus <= 201103) +# define BOOST_NO_CXX14_STD_EXCHANGE +#endif + +#if defined(__clang_major__) && ((__clang_major__ < 3) || ((__clang_major__ == 3) && (__clang_minor__ < 7))) +// As of clang-3.6, libstdc++ header throws up errors with clang: +# define BOOST_NO_CXX11_HDR_ATOMIC +#endif +// +// C++0x features in GCC 5.1 and later +// +#if (BOOST_LIBSTDCXX_VERSION < 50100) || !defined(BOOST_LIBSTDCXX11) +# define BOOST_NO_CXX11_HDR_TYPE_TRAITS +# define BOOST_NO_CXX11_HDR_CODECVT +# define BOOST_NO_CXX11_ATOMIC_SMART_PTR +# define BOOST_NO_CXX11_STD_ALIGN +#endif + +// +// C++17 features in GCC 6.1 and later +// +#if (BOOST_LIBSTDCXX_VERSION < 60100) || (__cplusplus <= 201402L) +# define BOOST_NO_CXX17_STD_INVOKE +#endif +#if (BOOST_LIBSTDCXX_VERSION < 70100) || (__cplusplus <= 201402L) +# define BOOST_NO_CXX17_STD_APPLY +#endif + +#if defined(__has_include) +#if !__has_include() +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#elif __cplusplus <= 201103 +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif +#elif __cplusplus < 201402 || (BOOST_LIBSTDCXX_VERSION < 40900) || !defined(BOOST_LIBSTDCXX11) +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif + +// +// Headers not present on Solaris with the Oracle compiler: +#if defined(__SUNPRO_CC) && (__SUNPRO_CC < 0x5140) +#define BOOST_NO_CXX11_HDR_FUTURE +#define BOOST_NO_CXX11_HDR_FORWARD_LIST +#define BOOST_NO_CXX11_HDR_ATOMIC +// shared_ptr is present, but is not convertible to bool +// which causes all kinds of problems especially in Boost.Thread +// but probably elsewhere as well. +#define BOOST_NO_CXX11_SMART_PTR +#endif + +#if (!defined(_GLIBCXX_HAS_GTHREADS) || !defined(_GLIBCXX_USE_C99_STDINT_TR1)) + // Headers not always available: +# ifndef BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +# endif +# ifndef BOOST_NO_CXX11_HDR_MUTEX +# define BOOST_NO_CXX11_HDR_MUTEX +# endif +# ifndef BOOST_NO_CXX11_HDR_THREAD +# define BOOST_NO_CXX11_HDR_THREAD +# endif +# ifndef BOOST_NO_CXX14_HDR_SHARED_MUTEX +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +# endif +#endif + +#if (!defined(_GTHREAD_USE_MUTEX_TIMEDLOCK) || (_GTHREAD_USE_MUTEX_TIMEDLOCK == 0)) && !defined(BOOST_NO_CXX11_HDR_MUTEX) +// Timed mutexes are not always available: +# define BOOST_NO_CXX11_HDR_MUTEX +#endif + +// --- end --- diff --git a/libraries/boost/include/boost/config/stdlib/modena.hpp b/libraries/boost/include/boost/config/stdlib/modena.hpp new file mode 100644 index 0000000000..81919e0180 --- /dev/null +++ b/libraries/boost/include/boost/config/stdlib/modena.hpp @@ -0,0 +1,78 @@ +// (C) Copyright Jens Maurer 2001. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// Modena C++ standard library (comes with KAI C++) + +#if !defined(MSIPL_COMPILE_H) +# include +# if !defined(__MSIPL_COMPILE_H) +# error "This is not the Modena C++ library!" +# endif +#endif + +#ifndef MSIPL_NL_TYPES +#define BOOST_NO_STD_MESSAGES +#endif + +#ifndef MSIPL_WCHART +#define BOOST_NO_STD_WSTRING +#endif + +// C++0x headers not yet implemented +// +# define BOOST_NO_CXX11_HDR_ARRAY +# define BOOST_NO_CXX11_HDR_CHRONO +# define BOOST_NO_CXX11_HDR_CODECVT +# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +# define BOOST_NO_CXX11_HDR_FORWARD_LIST +# define BOOST_NO_CXX11_HDR_FUTURE +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +# define BOOST_NO_CXX11_HDR_MUTEX +# define BOOST_NO_CXX11_HDR_RANDOM +# define BOOST_NO_CXX11_HDR_RATIO +# define BOOST_NO_CXX11_HDR_REGEX +# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR +# define BOOST_NO_CXX11_HDR_THREAD +# define BOOST_NO_CXX11_HDR_TUPLE +# define BOOST_NO_CXX11_HDR_TYPE_TRAITS +# define BOOST_NO_CXX11_HDR_TYPEINDEX +# define BOOST_NO_CXX11_HDR_UNORDERED_MAP +# define BOOST_NO_CXX11_HDR_UNORDERED_SET +# define BOOST_NO_CXX11_NUMERIC_LIMITS +# define BOOST_NO_CXX11_ALLOCATOR +# define BOOST_NO_CXX11_POINTER_TRAITS +# define BOOST_NO_CXX11_ATOMIC_SMART_PTR +# define BOOST_NO_CXX11_SMART_PTR +# define BOOST_NO_CXX11_HDR_FUNCTIONAL +# define BOOST_NO_CXX11_HDR_ATOMIC +# define BOOST_NO_CXX11_STD_ALIGN +# define BOOST_NO_CXX11_ADDRESSOF + +#if defined(__has_include) +#if !__has_include() +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#elif __cplusplus < 201402 +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif +#else +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif + +// C++14 features +# define BOOST_NO_CXX14_STD_EXCHANGE + +// C++17 features +# define BOOST_NO_CXX17_STD_APPLY +# define BOOST_NO_CXX17_STD_INVOKE +# define BOOST_NO_CXX17_ITERATOR_TRAITS + +#define BOOST_STDLIB "Modena C++ standard library" + + + + + diff --git a/libraries/boost/include/boost/config/stdlib/msl.hpp b/libraries/boost/include/boost/config/stdlib/msl.hpp new file mode 100644 index 0000000000..0e2e2afee8 --- /dev/null +++ b/libraries/boost/include/boost/config/stdlib/msl.hpp @@ -0,0 +1,97 @@ +// (C) Copyright John Maddock 2001. +// (C) Copyright Darin Adler 2001. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// Metrowerks standard library: + +#ifndef __MSL_CPP__ +# include +# ifndef __MSL_CPP__ +# error This is not the MSL standard library! +# endif +#endif + +#if __MSL_CPP__ >= 0x6000 // Pro 6 +# define BOOST_HAS_HASH +# define BOOST_STD_EXTENSION_NAMESPACE Metrowerks +#endif +#define BOOST_HAS_SLIST + +#if __MSL_CPP__ < 0x6209 +# define BOOST_NO_STD_MESSAGES +#endif + +// check C lib version for +#include + +#if defined(__MSL__) && (__MSL__ >= 0x5000) +# define BOOST_HAS_STDINT_H +# if !defined(__PALMOS_TRAPS__) +# define BOOST_HAS_UNISTD_H +# endif + // boilerplate code: +# include +#endif + +#if defined(_MWMT) || _MSL_THREADSAFE +# define BOOST_HAS_THREADS +#endif + +#ifdef _MSL_NO_EXPLICIT_FUNC_TEMPLATE_ARG +# define BOOST_NO_STD_USE_FACET +# define BOOST_HAS_TWO_ARG_USE_FACET +#endif + +// C++0x headers not yet implemented +// +# define BOOST_NO_CXX11_HDR_ARRAY +# define BOOST_NO_CXX11_HDR_CHRONO +# define BOOST_NO_CXX11_HDR_CODECVT +# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +# define BOOST_NO_CXX11_HDR_FORWARD_LIST +# define BOOST_NO_CXX11_HDR_FUTURE +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +# define BOOST_NO_CXX11_HDR_MUTEX +# define BOOST_NO_CXX11_HDR_RANDOM +# define BOOST_NO_CXX11_HDR_RATIO +# define BOOST_NO_CXX11_HDR_REGEX +# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR +# define BOOST_NO_CXX11_HDR_THREAD +# define BOOST_NO_CXX11_HDR_TUPLE +# define BOOST_NO_CXX11_HDR_TYPE_TRAITS +# define BOOST_NO_CXX11_HDR_TYPEINDEX +# define BOOST_NO_CXX11_HDR_UNORDERED_MAP +# define BOOST_NO_CXX11_HDR_UNORDERED_SET +# define BOOST_NO_CXX11_NUMERIC_LIMITS +# define BOOST_NO_CXX11_ALLOCATOR +# define BOOST_NO_CXX11_POINTER_TRAITS +# define BOOST_NO_CXX11_ATOMIC_SMART_PTR +# define BOOST_NO_CXX11_SMART_PTR +# define BOOST_NO_CXX11_HDR_FUNCTIONAL +# define BOOST_NO_CXX11_HDR_ATOMIC +# define BOOST_NO_CXX11_STD_ALIGN +# define BOOST_NO_CXX11_ADDRESSOF + +#if defined(__has_include) +#if !__has_include() +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#elif __cplusplus < 201402 +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif +#else +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif + +// C++14 features +# define BOOST_NO_CXX14_STD_EXCHANGE + +// C++17 features +# define BOOST_NO_CXX17_STD_APPLY +# define BOOST_NO_CXX17_STD_INVOKE +# define BOOST_NO_CXX17_ITERATOR_TRAITS + +#define BOOST_STDLIB "Metrowerks Standard Library version " BOOST_STRINGIZE(__MSL_CPP__) diff --git a/libraries/boost/include/boost/config/stdlib/roguewave.hpp b/libraries/boost/include/boost/config/stdlib/roguewave.hpp new file mode 100644 index 0000000000..df6021551a --- /dev/null +++ b/libraries/boost/include/boost/config/stdlib/roguewave.hpp @@ -0,0 +1,207 @@ +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Jens Maurer 2001. +// (C) Copyright David Abrahams 2003. +// (C) Copyright Boris Gubenko 2007. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// Rogue Wave std lib: + +#define BOOST_RW_STDLIB 1 + +#if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER) +# include +# if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER) +# error This is not the Rogue Wave standard library +# endif +#endif +// +// figure out a consistent version number: +// +#ifndef _RWSTD_VER +# define BOOST_RWSTD_VER 0x010000 +#elif _RWSTD_VER < 0x010000 +# define BOOST_RWSTD_VER (_RWSTD_VER << 8) +#else +# define BOOST_RWSTD_VER _RWSTD_VER +#endif + +#ifndef _RWSTD_VER +# define BOOST_STDLIB "Rogue Wave standard library version (Unknown version)" +#elif _RWSTD_VER < 0x04010200 + # define BOOST_STDLIB "Rogue Wave standard library version " BOOST_STRINGIZE(_RWSTD_VER) +#else +# ifdef _RWSTD_VER_STR +# define BOOST_STDLIB "Apache STDCXX standard library version " _RWSTD_VER_STR +# else +# define BOOST_STDLIB "Apache STDCXX standard library version " BOOST_STRINGIZE(_RWSTD_VER) +# endif +#endif + +// +// Prior to version 2.2.0 the primary template for std::numeric_limits +// does not have compile time constants, even though specializations of that +// template do: +// +#if BOOST_RWSTD_VER < 0x020200 +# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS +#endif + +// Sun CC 5.5 patch 113817-07 adds long long specialization, but does not change the +// library version number (http://sunsolve6.sun.com/search/document.do?assetkey=1-21-113817): +#if BOOST_RWSTD_VER <= 0x020101 && (!defined(__SUNPRO_CC) || (__SUNPRO_CC < 0x550)) +# define BOOST_NO_LONG_LONG_NUMERIC_LIMITS +# endif + +// +// Borland version of numeric_limits lacks __int64 specialisation: +// +#ifdef __BORLANDC__ +# define BOOST_NO_MS_INT64_NUMERIC_LIMITS +#endif + +// +// No std::iterator if it can't figure out default template args: +// +#if defined(_RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || defined(RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || (BOOST_RWSTD_VER < 0x020000) +# define BOOST_NO_STD_ITERATOR +#endif + +// +// No iterator traits without partial specialization: +// +#if defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) || defined(RWSTD_NO_CLASS_PARTIAL_SPEC) +# define BOOST_NO_STD_ITERATOR_TRAITS +#endif + +// +// Prior to version 2.0, std::auto_ptr was buggy, and there were no +// new-style iostreams, and no conformant std::allocator: +// +#if (BOOST_RWSTD_VER < 0x020000) +# define BOOST_NO_AUTO_PTR +# define BOOST_NO_STRINGSTREAM +# define BOOST_NO_STD_ALLOCATOR +# define BOOST_NO_STD_LOCALE +#endif + +// +// No template iterator constructors without member template support: +// +#if defined(RWSTD_NO_MEMBER_TEMPLATES) || defined(_RWSTD_NO_MEMBER_TEMPLATES) +# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS +#endif + +// +// RW defines _RWSTD_ALLOCATOR if the allocator is conformant and in use +// (the or _HPACC_ part is a hack - the library seems to define _RWSTD_ALLOCATOR +// on HP aCC systems even though the allocator is in fact broken): +// +#if !defined(_RWSTD_ALLOCATOR) || (defined(__HP_aCC) && __HP_aCC <= 33100) +# define BOOST_NO_STD_ALLOCATOR +#endif + +// +// If we have a std::locale, we still may not have std::use_facet: +// +#if defined(_RWSTD_NO_TEMPLATE_ON_RETURN_TYPE) && !defined(BOOST_NO_STD_LOCALE) +# define BOOST_NO_STD_USE_FACET +# define BOOST_HAS_TWO_ARG_USE_FACET +#endif + +// +// There's no std::distance prior to version 2, or without +// partial specialization support: +// +#if (BOOST_RWSTD_VER < 0x020000) || defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) + #define BOOST_NO_STD_DISTANCE +#endif + +// +// Some versions of the rogue wave library don't have assignable +// OutputIterators: +// +#if BOOST_RWSTD_VER < 0x020100 +# define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN +#endif + +// +// Disable BOOST_HAS_LONG_LONG when the library has no support for it. +// +#if !defined(_RWSTD_LONG_LONG) && defined(BOOST_HAS_LONG_LONG) +# undef BOOST_HAS_LONG_LONG +#endif + +// +// check that on HP-UX, the proper RW library is used +// +#if defined(__HP_aCC) && !defined(_HP_NAMESPACE_STD) +# error "Boost requires Standard RW library. Please compile and link with -AA" +#endif + +// +// Define macros specific to RW V2.2 on HP-UX +// +#if defined(__HP_aCC) && (BOOST_RWSTD_VER == 0x02020100) +# ifndef __HP_TC1_MAKE_PAIR +# define __HP_TC1_MAKE_PAIR +# endif +# ifndef _HP_INSTANTIATE_STD2_VL +# define _HP_INSTANTIATE_STD2_VL +# endif +#endif + +#if _RWSTD_VER < 0x05000000 +# define BOOST_NO_CXX11_HDR_ARRAY +#endif +// type_traits header is incomplete: +# define BOOST_NO_CXX11_HDR_TYPE_TRAITS +// +// C++0x headers not yet implemented +// +# define BOOST_NO_CXX11_HDR_CHRONO +# define BOOST_NO_CXX11_HDR_CODECVT +# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +# define BOOST_NO_CXX11_HDR_FORWARD_LIST +# define BOOST_NO_CXX11_HDR_FUTURE +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +# define BOOST_NO_CXX11_HDR_MUTEX +# define BOOST_NO_CXX11_HDR_RANDOM +# define BOOST_NO_CXX11_HDR_RATIO +# define BOOST_NO_CXX11_HDR_REGEX +# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR +# define BOOST_NO_CXX11_HDR_THREAD +# define BOOST_NO_CXX11_HDR_TUPLE +# define BOOST_NO_CXX11_HDR_TYPEINDEX +# define BOOST_NO_CXX11_HDR_UNORDERED_MAP +# define BOOST_NO_CXX11_HDR_UNORDERED_SET +# define BOOST_NO_CXX11_NUMERIC_LIMITS +# define BOOST_NO_CXX11_ALLOCATOR +# define BOOST_NO_CXX11_POINTER_TRAITS +# define BOOST_NO_CXX11_ATOMIC_SMART_PTR +# define BOOST_NO_CXX11_SMART_PTR +# define BOOST_NO_CXX11_HDR_FUNCTIONAL +# define BOOST_NO_CXX11_HDR_ATOMIC +# define BOOST_NO_CXX11_STD_ALIGN +# define BOOST_NO_CXX11_ADDRESSOF + +#if defined(__has_include) +#if !__has_include() +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#elif __cplusplus < 201402 +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif +#else +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif + +// C++14 features +# define BOOST_NO_CXX14_STD_EXCHANGE + +// C++17 features +# define BOOST_NO_CXX17_STD_APPLY +# define BOOST_NO_CXX17_STD_INVOKE +# define BOOST_NO_CXX17_ITERATOR_TRAITS diff --git a/libraries/boost/include/boost/config/stdlib/sgi.hpp b/libraries/boost/include/boost/config/stdlib/sgi.hpp new file mode 100644 index 0000000000..0c8ab2e4c1 --- /dev/null +++ b/libraries/boost/include/boost/config/stdlib/sgi.hpp @@ -0,0 +1,167 @@ +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Darin Adler 2001. +// (C) Copyright Jens Maurer 2001 - 2003. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// generic SGI STL: + +#if !defined(__STL_CONFIG_H) +# include +# if !defined(__STL_CONFIG_H) +# error "This is not the SGI STL!" +# endif +#endif + +// +// No std::iterator traits without partial specialisation: +// +#if !defined(__STL_CLASS_PARTIAL_SPECIALIZATION) +# define BOOST_NO_STD_ITERATOR_TRAITS +#endif + +// +// No std::stringstream with gcc < 3 +// +#if defined(__GNUC__) && (__GNUC__ < 3) && \ + ((__GNUC_MINOR__ < 95) || (__GNUC_MINOR__ == 96)) && \ + !defined(__STL_USE_NEW_IOSTREAMS) || \ + defined(__APPLE_CC__) + // Note that we only set this for GNU C++ prior to 2.95 since the + // latest patches for that release do contain a minimal + // If you are running a 2.95 release prior to 2.95.3 then this will need + // setting, but there is no way to detect that automatically (other + // than by running the configure script). + // Also, the unofficial GNU C++ 2.96 included in RedHat 7.1 doesn't + // have . +# define BOOST_NO_STRINGSTREAM +#endif + +// Apple doesn't seem to reliably defined a *unix* macro +#if !defined(CYGWIN) && ( defined(__unix__) \ + || defined(__unix) \ + || defined(unix) \ + || defined(__APPLE__) \ + || defined(__APPLE) \ + || defined(APPLE)) +# include +#endif + + +// +// Assume no std::locale without own iostreams (this may be an +// incorrect assumption in some cases): +// +#if !defined(__SGI_STL_OWN_IOSTREAMS) && !defined(__STL_USE_NEW_IOSTREAMS) +# define BOOST_NO_STD_LOCALE +#endif + +// +// Original native SGI streams have non-standard std::messages facet: +// +#if defined(__sgi) && (_COMPILER_VERSION <= 650) && !defined(__SGI_STL_OWN_IOSTREAMS) +# define BOOST_NO_STD_LOCALE +#endif + +// +// SGI's new iostreams have missing "const" in messages<>::open +// +#if defined(__sgi) && (_COMPILER_VERSION <= 740) && defined(__STL_USE_NEW_IOSTREAMS) +# define BOOST_NO_STD_MESSAGES +#endif + +// +// No template iterator constructors, or std::allocator +// without member templates: +// +#if !defined(__STL_MEMBER_TEMPLATES) +# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS +# define BOOST_NO_STD_ALLOCATOR +#endif + +// +// We always have SGI style hash_set, hash_map, and slist: +// +#define BOOST_HAS_HASH +#define BOOST_HAS_SLIST + +// +// If this is GNU libstdc++2, then no and no std::wstring: +// +#if (defined(__GNUC__) && (__GNUC__ < 3)) +# include +# if defined(__BASTRING__) +# define BOOST_NO_LIMITS +// Note: will provide compile-time constants +# undef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS +# define BOOST_NO_STD_WSTRING +# endif +#endif + +// +// There is no standard iterator unless we have namespace support: +// +#if !defined(__STL_USE_NAMESPACES) +# define BOOST_NO_STD_ITERATOR +#endif + +// +// Intrinsic type_traits support. +// The SGI STL has it's own __type_traits class, which +// has intrinsic compiler support with SGI's compilers. +// Whatever map SGI style type traits to boost equivalents: +// +#define BOOST_HAS_SGI_TYPE_TRAITS + +// C++0x headers not yet implemented +// +# define BOOST_NO_CXX11_HDR_ARRAY +# define BOOST_NO_CXX11_HDR_CHRONO +# define BOOST_NO_CXX11_HDR_CODECVT +# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +# define BOOST_NO_CXX11_HDR_FORWARD_LIST +# define BOOST_NO_CXX11_HDR_FUTURE +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +# define BOOST_NO_CXX11_HDR_MUTEX +# define BOOST_NO_CXX11_HDR_RANDOM +# define BOOST_NO_CXX11_HDR_RATIO +# define BOOST_NO_CXX11_HDR_REGEX +# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR +# define BOOST_NO_CXX11_HDR_THREAD +# define BOOST_NO_CXX11_HDR_TUPLE +# define BOOST_NO_CXX11_HDR_TYPE_TRAITS +# define BOOST_NO_CXX11_HDR_TYPEINDEX +# define BOOST_NO_CXX11_HDR_UNORDERED_MAP +# define BOOST_NO_CXX11_HDR_UNORDERED_SET +# define BOOST_NO_CXX11_NUMERIC_LIMITS +# define BOOST_NO_CXX11_ALLOCATOR +# define BOOST_NO_CXX11_POINTER_TRAITS +# define BOOST_NO_CXX11_ATOMIC_SMART_PTR +# define BOOST_NO_CXX11_SMART_PTR +# define BOOST_NO_CXX11_HDR_FUNCTIONAL +# define BOOST_NO_CXX11_HDR_ATOMIC +# define BOOST_NO_CXX11_STD_ALIGN +# define BOOST_NO_CXX11_ADDRESSOF + +#if defined(__has_include) +#if !__has_include() +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#elif __cplusplus < 201402 +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif +#else +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif + +// C++14 features +# define BOOST_NO_CXX14_STD_EXCHANGE + +// C++17 features +# define BOOST_NO_CXX17_STD_APPLY +# define BOOST_NO_CXX17_STD_INVOKE +# define BOOST_NO_CXX17_ITERATOR_TRAITS + +#define BOOST_STDLIB "SGI standard library" diff --git a/libraries/boost/include/boost/config/stdlib/stlport.hpp b/libraries/boost/include/boost/config/stdlib/stlport.hpp new file mode 100644 index 0000000000..2e304e2b94 --- /dev/null +++ b/libraries/boost/include/boost/config/stdlib/stlport.hpp @@ -0,0 +1,257 @@ +// (C) Copyright John Maddock 2001 - 2002. +// (C) Copyright Darin Adler 2001. +// (C) Copyright Jens Maurer 2001. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +// STLPort standard library config: + +#if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) +# include +# if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) +# error "This is not STLPort!" +# endif +#endif + +// Apple doesn't seem to reliably defined a *unix* macro +#if !defined(CYGWIN) && ( defined(__unix__) \ + || defined(__unix) \ + || defined(unix) \ + || defined(__APPLE__) \ + || defined(__APPLE) \ + || defined(APPLE)) +# include +#endif + +// +// __STL_STATIC_CONST_INIT_BUG implies BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS +// for versions prior to 4.1(beta) +// +#if (defined(__STL_STATIC_CONST_INIT_BUG) || defined(_STLP_STATIC_CONST_INIT_BUG)) && (__SGI_STL_PORT <= 0x400) +# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS +#endif + +// +// If STLport thinks that there is no partial specialisation, then there is no +// std::iterator traits: +// +#if !(defined(_STLP_CLASS_PARTIAL_SPECIALIZATION) || defined(__STL_CLASS_PARTIAL_SPECIALIZATION)) +# define BOOST_NO_STD_ITERATOR_TRAITS +#endif + +// +// No new style iostreams on GCC without STLport's iostreams enabled: +// +#if (defined(__GNUC__) && (__GNUC__ < 3)) && !(defined(__SGI_STL_OWN_IOSTREAMS) || defined(_STLP_OWN_IOSTREAMS)) +# define BOOST_NO_STRINGSTREAM +#endif + +// +// No new iostreams implies no std::locale, and no std::stringstream: +// +#if defined(__STL_NO_IOSTREAMS) || defined(__STL_NO_NEW_IOSTREAMS) || defined(_STLP_NO_IOSTREAMS) || defined(_STLP_NO_NEW_IOSTREAMS) +# define BOOST_NO_STD_LOCALE +# define BOOST_NO_STRINGSTREAM +#endif + +// +// If the streams are not native, and we have a "using ::x" compiler bug +// then the io stream facets are not available in namespace std:: +// +#ifdef _STLPORT_VERSION +# if !(_STLPORT_VERSION >= 0x500) && !defined(_STLP_OWN_IOSTREAMS) && defined(_STLP_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__) +# define BOOST_NO_STD_LOCALE +# endif +#else +# if !defined(__SGI_STL_OWN_IOSTREAMS) && defined(__STL_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__) +# define BOOST_NO_STD_LOCALE +# endif +#endif + +#if defined(_STLPORT_VERSION) && (_STLPORT_VERSION >= 0x520) +# define BOOST_HAS_TR1_UNORDERED_SET +# define BOOST_HAS_TR1_UNORDERED_MAP +#endif +// +// Without member template support enabled, their are no template +// iterate constructors, and no std::allocator: +// +#if !(defined(__STL_MEMBER_TEMPLATES) || defined(_STLP_MEMBER_TEMPLATES)) +# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS +# define BOOST_NO_STD_ALLOCATOR +#endif +// +// however we always have at least a partial allocator: +// +#define BOOST_HAS_PARTIAL_STD_ALLOCATOR + +#if !defined(_STLP_MEMBER_TEMPLATE_CLASSES) || defined(_STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE) +# define BOOST_NO_STD_ALLOCATOR +#endif + +#if defined(_STLP_NO_MEMBER_TEMPLATE_KEYWORD) && defined(BOOST_MSVC) && (BOOST_MSVC <= 1300) +# define BOOST_NO_STD_ALLOCATOR +#endif + +// +// If STLport thinks there is no wchar_t at all, then we have to disable +// the support for the relevant specilazations of std:: templates. +// +#if !defined(_STLP_HAS_WCHAR_T) && !defined(_STLP_WCHAR_T_IS_USHORT) +# ifndef BOOST_NO_STD_WSTRING +# define BOOST_NO_STD_WSTRING +# endif +# ifndef BOOST_NO_STD_WSTREAMBUF +# define BOOST_NO_STD_WSTREAMBUF +# endif +#endif + +// +// We always have SGI style hash_set, hash_map, and slist: +// +#ifndef _STLP_NO_EXTENSIONS +#define BOOST_HAS_HASH +#define BOOST_HAS_SLIST +#endif + +// +// STLport does a good job of importing names into namespace std::, +// but doesn't always get them all, define BOOST_NO_STDC_NAMESPACE, since our +// workaround does not conflict with STLports: +// +// +// Harold Howe says: +// Borland switched to STLport in BCB6. Defining BOOST_NO_STDC_NAMESPACE with +// BCB6 does cause problems. If we detect C++ Builder, then don't define +// BOOST_NO_STDC_NAMESPACE +// +#if !defined(__BORLANDC__) && !defined(__DMC__) +// +// If STLport is using it's own namespace, and the real names are in +// the global namespace, then we duplicate STLport's using declarations +// (by defining BOOST_NO_STDC_NAMESPACE), we do this because STLport doesn't +// necessarily import all the names we need into namespace std:: +// +# if (defined(__STL_IMPORT_VENDOR_CSTD) \ + || defined(__STL_USE_OWN_NAMESPACE) \ + || defined(_STLP_IMPORT_VENDOR_CSTD) \ + || defined(_STLP_USE_OWN_NAMESPACE)) \ + && (defined(__STL_VENDOR_GLOBAL_CSTD) || defined (_STLP_VENDOR_GLOBAL_CSTD)) +# define BOOST_NO_STDC_NAMESPACE +# define BOOST_NO_EXCEPTION_STD_NAMESPACE +# endif +#elif defined(__BORLANDC__) && __BORLANDC__ < 0x560 +// STLport doesn't import std::abs correctly: +#include +namespace std { using ::abs; } +// and strcmp/strcpy don't get imported either ('cos they are macros) +#include +#ifdef strcpy +# undef strcpy +#endif +#ifdef strcmp +# undef strcmp +#endif +#ifdef _STLP_VENDOR_CSTD +namespace std{ using _STLP_VENDOR_CSTD::strcmp; using _STLP_VENDOR_CSTD::strcpy; } +#endif +#endif + +// +// std::use_facet may be non-standard, uses a class instead: +// +#if defined(__STL_NO_EXPLICIT_FUNCTION_TMPL_ARGS) || defined(_STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS) +# define BOOST_NO_STD_USE_FACET +# define BOOST_HAS_STLP_USE_FACET +#endif + +// +// If STLport thinks there are no wide functions, etc. is not working; but +// only if BOOST_NO_STDC_NAMESPACE is not defined (if it is then we do the import +// into std:: ourselves). +// +#if defined(_STLP_NO_NATIVE_WIDE_FUNCTIONS) && !defined(BOOST_NO_STDC_NAMESPACE) +# define BOOST_NO_CWCHAR +# define BOOST_NO_CWCTYPE +#endif + +// +// If STLport for some reason was configured so that it thinks that wchar_t +// is not an intrinsic type, then we have to disable the support for it as +// well (we would be missing required specializations otherwise). +// +#if !defined( _STLP_HAS_WCHAR_T) || defined(_STLP_WCHAR_T_IS_USHORT) +# undef BOOST_NO_INTRINSIC_WCHAR_T +# define BOOST_NO_INTRINSIC_WCHAR_T +#endif + +// +// Borland ships a version of STLport with C++ Builder 6 that lacks +// hashtables and the like: +// +#if defined(__BORLANDC__) && (__BORLANDC__ == 0x560) +# undef BOOST_HAS_HASH +#endif + +// +// gcc-2.95.3/STLPort does not like the using declarations we use to get ADL with std::min/max +// +#if defined(__GNUC__) && (__GNUC__ < 3) +# include // for std::min and std::max +# define BOOST_USING_STD_MIN() ((void)0) +# define BOOST_USING_STD_MAX() ((void)0) +namespace boost { using std::min; using std::max; } +#endif + +// C++0x headers not yet implemented +// +# define BOOST_NO_CXX11_HDR_ARRAY +# define BOOST_NO_CXX11_HDR_CHRONO +# define BOOST_NO_CXX11_HDR_CODECVT +# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +# define BOOST_NO_CXX11_HDR_FORWARD_LIST +# define BOOST_NO_CXX11_HDR_FUTURE +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +# define BOOST_NO_CXX11_HDR_MUTEX +# define BOOST_NO_CXX11_HDR_RANDOM +# define BOOST_NO_CXX11_HDR_RATIO +# define BOOST_NO_CXX11_HDR_REGEX +# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR +# define BOOST_NO_CXX11_HDR_THREAD +# define BOOST_NO_CXX11_HDR_TUPLE +# define BOOST_NO_CXX11_HDR_TYPE_TRAITS +# define BOOST_NO_CXX11_HDR_TYPEINDEX +# define BOOST_NO_CXX11_HDR_UNORDERED_MAP +# define BOOST_NO_CXX11_HDR_UNORDERED_SET +# define BOOST_NO_CXX11_NUMERIC_LIMITS +# define BOOST_NO_CXX11_ALLOCATOR +# define BOOST_NO_CXX11_POINTER_TRAITS +# define BOOST_NO_CXX11_ATOMIC_SMART_PTR +# define BOOST_NO_CXX11_SMART_PTR +# define BOOST_NO_CXX11_HDR_FUNCTIONAL +# define BOOST_NO_CXX11_HDR_ATOMIC +# define BOOST_NO_CXX11_STD_ALIGN +# define BOOST_NO_CXX11_ADDRESSOF + +#if defined(__has_include) +#if !__has_include() +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#elif __cplusplus < 201402 +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif +#else +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif + +// C++14 features +# define BOOST_NO_CXX14_STD_EXCHANGE + +// C++17 features +# define BOOST_NO_CXX17_STD_APPLY +# define BOOST_NO_CXX17_STD_INVOKE +# define BOOST_NO_CXX17_ITERATOR_TRAITS + +#define BOOST_STDLIB "STLPort standard library version " BOOST_STRINGIZE(__SGI_STL_PORT) diff --git a/libraries/boost/include/boost/config/stdlib/vacpp.hpp b/libraries/boost/include/boost/config/stdlib/vacpp.hpp new file mode 100644 index 0000000000..c4e1fb1847 --- /dev/null +++ b/libraries/boost/include/boost/config/stdlib/vacpp.hpp @@ -0,0 +1,73 @@ +// (C) Copyright John Maddock 2001 - 2002. +// Use, modification and distribution are subject to 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) + +// See http://www.boost.org for most recent version. + +#if __IBMCPP__ <= 501 +# define BOOST_NO_STD_ALLOCATOR +#endif + +#define BOOST_HAS_MACRO_USE_FACET +#define BOOST_NO_STD_MESSAGES + +// Apple doesn't seem to reliably defined a *unix* macro +#if !defined(CYGWIN) && ( defined(__unix__) \ + || defined(__unix) \ + || defined(unix) \ + || defined(__APPLE__) \ + || defined(__APPLE) \ + || defined(APPLE)) +# include +#endif + +// C++0x headers not yet implemented +// +# define BOOST_NO_CXX11_HDR_ARRAY +# define BOOST_NO_CXX11_HDR_CHRONO +# define BOOST_NO_CXX11_HDR_CODECVT +# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +# define BOOST_NO_CXX11_HDR_FORWARD_LIST +# define BOOST_NO_CXX11_HDR_FUTURE +# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST +# define BOOST_NO_CXX11_HDR_MUTEX +# define BOOST_NO_CXX11_HDR_RANDOM +# define BOOST_NO_CXX11_HDR_RATIO +# define BOOST_NO_CXX11_HDR_REGEX +# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR +# define BOOST_NO_CXX11_HDR_THREAD +# define BOOST_NO_CXX11_HDR_TUPLE +# define BOOST_NO_CXX11_HDR_TYPE_TRAITS +# define BOOST_NO_CXX11_HDR_TYPEINDEX +# define BOOST_NO_CXX11_HDR_UNORDERED_MAP +# define BOOST_NO_CXX11_HDR_UNORDERED_SET +# define BOOST_NO_CXX11_NUMERIC_LIMITS +# define BOOST_NO_CXX11_ALLOCATOR +# define BOOST_NO_CXX11_POINTER_TRAITS +# define BOOST_NO_CXX11_ATOMIC_SMART_PTR +# define BOOST_NO_CXX11_SMART_PTR +# define BOOST_NO_CXX11_HDR_FUNCTIONAL +# define BOOST_NO_CXX11_HDR_ATOMIC +# define BOOST_NO_CXX11_STD_ALIGN +# define BOOST_NO_CXX11_ADDRESSOF + +#if defined(__has_include) +#if !__has_include() +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#elif __cplusplus < 201402 +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif +#else +# define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif + +// C++14 features +# define BOOST_NO_CXX14_STD_EXCHANGE + +// C++17 features +# define BOOST_NO_CXX17_STD_APPLY +# define BOOST_NO_CXX17_STD_INVOKE +# define BOOST_NO_CXX17_ITERATOR_TRAITS + +#define BOOST_STDLIB "Visual Age default standard library" diff --git a/libraries/boost/include/boost/config/stdlib/xlcpp_zos.hpp b/libraries/boost/include/boost/config/stdlib/xlcpp_zos.hpp new file mode 100644 index 0000000000..4d5beb1855 --- /dev/null +++ b/libraries/boost/include/boost/config/stdlib/xlcpp_zos.hpp @@ -0,0 +1,60 @@ +// Copyright (c) 2017 Dynatrace +// +// 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 + +// See http://www.boost.org for most recent version. + +// Standard library setup for IBM z/OS XL C/C++ compiler. + +// Oldest library version currently supported is 2.1 (V2R1) +#if __TARGET_LIB__ < 0x42010000 +# error "Library version not supported or configured - please reconfigure" +#endif + +#if __TARGET_LIB__ > 0x42010000 +# if defined(BOOST_ASSERT_CONFIG) +# error "Unknown library version - please run the configure tests and report the results" +# endif +#endif + +#define BOOST_STDLIB "IBM z/OS XL C/C++ standard library" + +#define BOOST_HAS_MACRO_USE_FACET + +#define BOOST_NO_CXX11_HDR_TYPE_TRAITS +#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST + +#define BOOST_NO_CXX11_ADDRESSOF +#define BOOST_NO_CXX11_SMART_PTR +#define BOOST_NO_CXX11_ATOMIC_SMART_PTR +#define BOOST_NO_CXX11_NUMERIC_LIMITS +#define BOOST_NO_CXX11_ALLOCATOR +#define BOOST_NO_CXX11_POINTER_TRAITS +#define BOOST_NO_CXX11_HDR_FUNCTIONAL +#define BOOST_NO_CXX11_HDR_UNORDERED_SET +#define BOOST_NO_CXX11_HDR_UNORDERED_MAP +#define BOOST_NO_CXX11_HDR_TYPEINDEX +#define BOOST_NO_CXX11_HDR_TUPLE +#define BOOST_NO_CXX11_HDR_THREAD +#define BOOST_NO_CXX11_HDR_SYSTEM_ERROR +#define BOOST_NO_CXX11_HDR_REGEX +#define BOOST_NO_CXX11_HDR_RATIO +#define BOOST_NO_CXX11_HDR_RANDOM +#define BOOST_NO_CXX11_HDR_MUTEX +#define BOOST_NO_CXX11_HDR_FUTURE +#define BOOST_NO_CXX11_HDR_FORWARD_LIST +#define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +#define BOOST_NO_CXX11_HDR_CODECVT +#define BOOST_NO_CXX11_HDR_CHRONO +#define BOOST_NO_CXX11_HDR_ATOMIC +#define BOOST_NO_CXX11_HDR_ARRAY +#define BOOST_NO_CXX11_STD_ALIGN + +#define BOOST_NO_CXX14_STD_EXCHANGE +#define BOOST_NO_CXX14_HDR_SHARED_MUTEX + +#define BOOST_NO_CXX17_STD_INVOKE +#define BOOST_NO_CXX17_STD_APPLY +#define BOOST_NO_CXX17_ITERATOR_TRAITS diff --git a/libraries/boost/include/boost/config/user.hpp b/libraries/boost/include/boost/config/user.hpp new file mode 100644 index 0000000000..28e7476afd --- /dev/null +++ b/libraries/boost/include/boost/config/user.hpp @@ -0,0 +1,133 @@ +// boost/config/user.hpp ---------------------------------------------------// + +// (C) Copyright John Maddock 2001. +// Use, modification and distribution are subject to 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) + +// Do not check in modified versions of this file, +// This file may be customized by the end user, but not by boost. + +// +// Use this file to define a site and compiler specific +// configuration policy: +// + +// define this to locate a compiler config file: +// #define BOOST_COMPILER_CONFIG + +// define this to locate a stdlib config file: +// #define BOOST_STDLIB_CONFIG + +// define this to locate a platform config file: +// #define BOOST_PLATFORM_CONFIG + +// define this to disable compiler config, +// use if your compiler config has nothing to set: +// #define BOOST_NO_COMPILER_CONFIG + +// define this to disable stdlib config, +// use if your stdlib config has nothing to set: +// #define BOOST_NO_STDLIB_CONFIG + +// define this to disable platform config, +// use if your platform config has nothing to set: +// #define BOOST_NO_PLATFORM_CONFIG + +// define this to disable all config options, +// excluding the user config. Use if your +// setup is fully ISO compliant, and has no +// useful extensions, or for autoconf generated +// setups: +// #define BOOST_NO_CONFIG + +// define this to make the config "optimistic" +// about unknown compiler versions. Normally +// unknown compiler versions are assumed to have +// all the defects of the last known version, however +// setting this flag, causes the config to assume +// that unknown compiler versions are fully conformant +// with the standard: +// #define BOOST_STRICT_CONFIG + +// define this to cause the config to halt compilation +// with an #error if it encounters anything unknown -- +// either an unknown compiler version or an unknown +// compiler/platform/library: +// #define BOOST_ASSERT_CONFIG + + +// define if you want to disable threading support, even +// when available: +// #define BOOST_DISABLE_THREADS + +// define when you want to disable Win32 specific features +// even when available: +// #define BOOST_DISABLE_WIN32 + +// BOOST_DISABLE_ABI_HEADERS: Stops boost headers from including any +// prefix/suffix headers that normally control things like struct +// packing and alignment. +// #define BOOST_DISABLE_ABI_HEADERS + +// BOOST_ABI_PREFIX: A prefix header to include in place of whatever +// boost.config would normally select, any replacement should set up +// struct packing and alignment options as required. +// #define BOOST_ABI_PREFIX my-header-name + +// BOOST_ABI_SUFFIX: A suffix header to include in place of whatever +// boost.config would normally select, any replacement should undo +// the effects of the prefix header. +// #define BOOST_ABI_SUFFIX my-header-name + +// BOOST_ALL_DYN_LINK: Forces all libraries that have separate source, +// to be linked as dll's rather than static libraries on Microsoft Windows +// (this macro is used to turn on __declspec(dllimport) modifiers, so that +// the compiler knows which symbols to look for in a dll rather than in a +// static library). Note that there may be some libraries that can only +// be linked in one way (statically or dynamically), in these cases this +// macro has no effect. +// #define BOOST_ALL_DYN_LINK + +// BOOST_WHATEVER_DYN_LINK: Forces library "whatever" to be linked as a dll +// rather than a static library on Microsoft Windows: replace the WHATEVER +// part of the macro name with the name of the library that you want to +// dynamically link to, for example use BOOST_DATE_TIME_DYN_LINK or +// BOOST_REGEX_DYN_LINK etc (this macro is used to turn on __declspec(dllimport) +// modifiers, so that the compiler knows which symbols to look for in a dll +// rather than in a static library). +// Note that there may be some libraries that can only +// be linked in one way (statically or dynamically), +// in these cases this macro is unsupported. +// #define BOOST_WHATEVER_DYN_LINK + +// BOOST_ALL_NO_LIB: Tells the config system not to automatically select +// which libraries to link against. +// Normally if a compiler supports #pragma lib, then the correct library +// build variant will be automatically selected and linked against, +// simply by the act of including one of that library's headers. +// This macro turns that feature off. +// #define BOOST_ALL_NO_LIB + +// BOOST_WHATEVER_NO_LIB: Tells the config system not to automatically +// select which library to link against for library "whatever", +// replace WHATEVER in the macro name with the name of the library; +// for example BOOST_DATE_TIME_NO_LIB or BOOST_REGEX_NO_LIB. +// Normally if a compiler supports #pragma lib, then the correct library +// build variant will be automatically selected and linked against, simply +// by the act of including one of that library's headers. This macro turns +// that feature off. +// #define BOOST_WHATEVER_NO_LIB + +// BOOST_LIB_BUILDID: Set to the same value as the value passed to Boost.Build's +// --buildid command line option. For example if you built using: +// +// bjam address-model=64 --buildid=amd64 +// +// then compile your code with: +// +// -DBOOST_LIB_BUILDID = amd64 +// +// to ensure the correct libraries are selected at link time. +// #define BOOST_LIB_BUILDID amd64 + diff --git a/libraries/boost/include/boost/config/warning_disable.hpp b/libraries/boost/include/boost/config/warning_disable.hpp new file mode 100644 index 0000000000..fea8e829f1 --- /dev/null +++ b/libraries/boost/include/boost/config/warning_disable.hpp @@ -0,0 +1,47 @@ +// Copyright John Maddock 2008 +// Use, modification, and distribution is subject to 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) +// +// This file exists to turn off some overly-pedantic warning emitted +// by certain compilers. You should include this header only in: +// +// * A test case, before any other headers, or, +// * A library source file before any other headers. +// +// IT SHOULD NOT BE INCLUDED BY ANY BOOST HEADER. +// +// YOU SHOULD NOT INCLUDE IT IF YOU CAN REASONABLY FIX THE WARNING. +// +// The only warnings disabled here are those that are: +// +// * Quite unreasonably pedantic. +// * Generally only emitted by a single compiler. +// * Can't easily be fixed: for example if the vendors own std lib +// code emits these warnings! +// +// Note that THIS HEADER MUST NOT INCLUDE ANY OTHER HEADERS: +// not even std library ones! Doing so may turn the warning +// off too late to be of any use. For example the VC++ C4996 +// warning can be emitted from if that header is included +// before or by this one :-( +// + +#ifndef BOOST_CONFIG_WARNING_DISABLE_HPP +#define BOOST_CONFIG_WARNING_DISABLE_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1400) + // Error 'function': was declared deprecated + // http://msdn2.microsoft.com/en-us/library/ttcz0bys(VS.80).aspx + // This error is emitted when you use some perfectly conforming + // std lib functions in a perfectly correct way, and also by + // some of Microsoft's own std lib code ! +# pragma warning(disable:4996) +#endif +#if defined(__INTEL_COMPILER) || defined(__ICL) + // As above: gives warning when a "deprecated" + // std library function is encountered. +# pragma warning(disable:1786) +#endif + +#endif // BOOST_CONFIG_WARNING_DISABLE_HPP diff --git a/libraries/boost/include/boost/config/workaround.hpp b/libraries/boost/include/boost/config/workaround.hpp new file mode 100644 index 0000000000..fca8f3ab7e --- /dev/null +++ b/libraries/boost/include/boost/config/workaround.hpp @@ -0,0 +1,279 @@ +// Copyright David Abrahams 2002. +// 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) +#ifndef BOOST_CONFIG_WORKAROUND_HPP +#define BOOST_CONFIG_WORKAROUND_HPP + +// Compiler/library version workaround macro +// +// Usage: +// +// #if BOOST_WORKAROUND(BOOST_MSVC, < 1300) +// // workaround for eVC4 and VC6 +// ... // workaround code here +// #endif +// +// When BOOST_STRICT_CONFIG is defined, expands to 0. Otherwise, the +// first argument must be undefined or expand to a numeric +// value. The above expands to: +// +// (BOOST_MSVC) != 0 && (BOOST_MSVC) < 1300 +// +// When used for workarounds that apply to the latest known version +// and all earlier versions of a compiler, the following convention +// should be observed: +// +// #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1301)) +// +// The version number in this case corresponds to the last version in +// which the workaround was known to have been required. When +// BOOST_DETECT_OUTDATED_WORKAROUNDS is not the defined, the macro +// BOOST_TESTED_AT(x) expands to "!= 0", which effectively activates +// the workaround for any version of the compiler. When +// BOOST_DETECT_OUTDATED_WORKAROUNDS is defined, a compiler warning or +// error will be issued if the compiler version exceeds the argument +// to BOOST_TESTED_AT(). This can be used to locate workarounds which +// may be obsoleted by newer versions. + +#ifndef BOOST_STRICT_CONFIG + +#include + +#ifndef __BORLANDC__ +#define __BORLANDC___WORKAROUND_GUARD 1 +#else +#define __BORLANDC___WORKAROUND_GUARD 0 +#endif +#ifndef __CODEGEARC__ +#define __CODEGEARC___WORKAROUND_GUARD 1 +#else +#define __CODEGEARC___WORKAROUND_GUARD 0 +#endif +#ifndef _MSC_VER +#define _MSC_VER_WORKAROUND_GUARD 1 +#else +#define _MSC_VER_WORKAROUND_GUARD 0 +#endif +#ifndef _MSC_FULL_VER +#define _MSC_FULL_VER_WORKAROUND_GUARD 1 +#else +#define _MSC_FULL_VER_WORKAROUND_GUARD 0 +#endif +#ifndef BOOST_MSVC +#define BOOST_MSVC_WORKAROUND_GUARD 1 +#else +#define BOOST_MSVC_WORKAROUND_GUARD 0 +#endif +#ifndef BOOST_MSVC_FULL_VER +#define BOOST_MSVC_FULL_VER_WORKAROUND_GUARD 1 +#else +#define BOOST_MSVC_FULL_VER_WORKAROUND_GUARD 0 +#endif +#ifndef __GNUC__ +#define __GNUC___WORKAROUND_GUARD 1 +#else +#define __GNUC___WORKAROUND_GUARD 0 +#endif +#ifndef __GNUC_MINOR__ +#define __GNUC_MINOR___WORKAROUND_GUARD 1 +#else +#define __GNUC_MINOR___WORKAROUND_GUARD 0 +#endif +#ifndef __GNUC_PATCHLEVEL__ +#define __GNUC_PATCHLEVEL___WORKAROUND_GUARD 1 +#else +#define __GNUC_PATCHLEVEL___WORKAROUND_GUARD 0 +#endif +#ifndef BOOST_GCC +#define BOOST_GCC_WORKAROUND_GUARD 1 +#define BOOST_GCC_VERSION_WORKAROUND_GUARD 1 +#else +#define BOOST_GCC_WORKAROUND_GUARD 0 +#define BOOST_GCC_VERSION_WORKAROUND_GUARD 0 +#endif +#ifndef BOOST_XLCPP_ZOS +#define BOOST_XLCPP_ZOS_WORKAROUND_GUARD 1 +#else +#define BOOST_XLCPP_ZOS_WORKAROUND_GUARD 0 +#endif +#ifndef __IBMCPP__ +#define __IBMCPP___WORKAROUND_GUARD 1 +#else +#define __IBMCPP___WORKAROUND_GUARD 0 +#endif +#ifndef __SUNPRO_CC +#define __SUNPRO_CC_WORKAROUND_GUARD 1 +#else +#define __SUNPRO_CC_WORKAROUND_GUARD 0 +#endif +#ifndef __DECCXX_VER +#define __DECCXX_VER_WORKAROUND_GUARD 1 +#else +#define __DECCXX_VER_WORKAROUND_GUARD 0 +#endif +#ifndef __MWERKS__ +#define __MWERKS___WORKAROUND_GUARD 1 +#else +#define __MWERKS___WORKAROUND_GUARD 0 +#endif +#ifndef __EDG__ +#define __EDG___WORKAROUND_GUARD 1 +#else +#define __EDG___WORKAROUND_GUARD 0 +#endif +#ifndef __EDG_VERSION__ +#define __EDG_VERSION___WORKAROUND_GUARD 1 +#else +#define __EDG_VERSION___WORKAROUND_GUARD 0 +#endif +#ifndef __HP_aCC +#define __HP_aCC_WORKAROUND_GUARD 1 +#else +#define __HP_aCC_WORKAROUND_GUARD 0 +#endif +#ifndef __hpxstd98 +#define __hpxstd98_WORKAROUND_GUARD 1 +#else +#define __hpxstd98_WORKAROUND_GUARD 0 +#endif +#ifndef _CRAYC +#define _CRAYC_WORKAROUND_GUARD 1 +#else +#define _CRAYC_WORKAROUND_GUARD 0 +#endif +#ifndef __DMC__ +#define __DMC___WORKAROUND_GUARD 1 +#else +#define __DMC___WORKAROUND_GUARD 0 +#endif +#ifndef MPW_CPLUS +#define MPW_CPLUS_WORKAROUND_GUARD 1 +#else +#define MPW_CPLUS_WORKAROUND_GUARD 0 +#endif +#ifndef __COMO__ +#define __COMO___WORKAROUND_GUARD 1 +#else +#define __COMO___WORKAROUND_GUARD 0 +#endif +#ifndef __COMO_VERSION__ +#define __COMO_VERSION___WORKAROUND_GUARD 1 +#else +#define __COMO_VERSION___WORKAROUND_GUARD 0 +#endif +#ifndef __INTEL_COMPILER +#define __INTEL_COMPILER_WORKAROUND_GUARD 1 +#else +#define __INTEL_COMPILER_WORKAROUND_GUARD 0 +#endif +#ifndef __ICL +#define __ICL_WORKAROUND_GUARD 1 +#else +#define __ICL_WORKAROUND_GUARD 0 +#endif +#ifndef _COMPILER_VERSION +#define _COMPILER_VERSION_WORKAROUND_GUARD 1 +#else +#define _COMPILER_VERSION_WORKAROUND_GUARD 0 +#endif + +#ifndef _RWSTD_VER +#define _RWSTD_VER_WORKAROUND_GUARD 1 +#else +#define _RWSTD_VER_WORKAROUND_GUARD 0 +#endif +#ifndef BOOST_RWSTD_VER +#define BOOST_RWSTD_VER_WORKAROUND_GUARD 1 +#else +#define BOOST_RWSTD_VER_WORKAROUND_GUARD 0 +#endif +#ifndef __GLIBCPP__ +#define __GLIBCPP___WORKAROUND_GUARD 1 +#else +#define __GLIBCPP___WORKAROUND_GUARD 0 +#endif +#ifndef _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC +#define _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC_WORKAROUND_GUARD 1 +#else +#define _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC_WORKAROUND_GUARD 0 +#endif +#ifndef __SGI_STL_PORT +#define __SGI_STL_PORT_WORKAROUND_GUARD 1 +#else +#define __SGI_STL_PORT_WORKAROUND_GUARD 0 +#endif +#ifndef _STLPORT_VERSION +#define _STLPORT_VERSION_WORKAROUND_GUARD 1 +#else +#define _STLPORT_VERSION_WORKAROUND_GUARD 0 +#endif +#ifndef __LIBCOMO_VERSION__ +#define __LIBCOMO_VERSION___WORKAROUND_GUARD 1 +#else +#define __LIBCOMO_VERSION___WORKAROUND_GUARD 0 +#endif +#ifndef _CPPLIB_VER +#define _CPPLIB_VER_WORKAROUND_GUARD 1 +#else +#define _CPPLIB_VER_WORKAROUND_GUARD 0 +#endif + +#ifndef BOOST_INTEL_CXX_VERSION +#define BOOST_INTEL_CXX_VERSION_WORKAROUND_GUARD 1 +#else +#define BOOST_INTEL_CXX_VERSION_WORKAROUND_GUARD 0 +#endif +#ifndef BOOST_INTEL_WIN +#define BOOST_INTEL_WIN_WORKAROUND_GUARD 1 +#else +#define BOOST_INTEL_WIN_WORKAROUND_GUARD 0 +#endif +#ifndef BOOST_DINKUMWARE_STDLIB +#define BOOST_DINKUMWARE_STDLIB_WORKAROUND_GUARD 1 +#else +#define BOOST_DINKUMWARE_STDLIB_WORKAROUND_GUARD 0 +#endif +#ifndef BOOST_INTEL +#define BOOST_INTEL_WORKAROUND_GUARD 1 +#else +#define BOOST_INTEL_WORKAROUND_GUARD 0 +#endif +// Always define to zero, if it's used it'll be defined my MPL: +#define BOOST_MPL_CFG_GCC_WORKAROUND_GUARD 0 + +#define BOOST_WORKAROUND(symbol, test) \ + ((symbol ## _WORKAROUND_GUARD + 0 == 0) && \ + (symbol != 0) && (1 % (( (symbol test) ) + 1))) +// ^ ^ ^ ^ +// The extra level of parenthesis nesting above, along with the +// BOOST_OPEN_PAREN indirection below, is required to satisfy the +// broken preprocessor in MWCW 8.3 and earlier. +// +// The basic mechanism works as follows: +// (symbol test) + 1 => if (symbol test) then 2 else 1 +// 1 % ((symbol test) + 1) => if (symbol test) then 1 else 0 +// +// The complication with % is for cooperation with BOOST_TESTED_AT(). +// When "test" is BOOST_TESTED_AT(x) and +// BOOST_DETECT_OUTDATED_WORKAROUNDS is #defined, +// +// symbol test => if (symbol <= x) then 1 else -1 +// (symbol test) + 1 => if (symbol <= x) then 2 else 0 +// 1 % ((symbol test) + 1) => if (symbol <= x) then 1 else divide-by-zero +// + +#ifdef BOOST_DETECT_OUTDATED_WORKAROUNDS +# define BOOST_OPEN_PAREN ( +# define BOOST_TESTED_AT(value) > value) ?(-1): BOOST_OPEN_PAREN 1 +#else +# define BOOST_TESTED_AT(value) != ((value)-(value)) +#endif + +#else + +#define BOOST_WORKAROUND(symbol, test) 0 + +#endif + +#endif // BOOST_CONFIG_WORKAROUND_HPP diff --git a/libraries/boost/include/boost/container/adaptive_pool.hpp b/libraries/boost/include/boost/container/adaptive_pool.hpp new file mode 100644 index 0000000000..900806a649 --- /dev/null +++ b/libraries/boost/include/boost/container/adaptive_pool.hpp @@ -0,0 +1,349 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2005-2013. 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) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// + +#ifndef BOOST_CONTAINER_ADAPTIVE_POOL_HPP +#define BOOST_CONTAINER_ADAPTIVE_POOL_HPP + +#ifndef BOOST_CONFIG_HPP +# include +#endif + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + + +namespace boost { +namespace container { + +//!An STL node allocator that uses a modified DLMalloc as memory +//!source. +//! +//!This node allocator shares a segregated storage between all instances +//!of adaptive_pool with equal sizeof(T). +//! +//!NodesPerBlock is the number of nodes allocated at once when the allocator +//!needs runs out of nodes. MaxFreeBlocks is the maximum number of totally free blocks +//!that the adaptive node pool will hold. The rest of the totally free blocks will be +//!deallocated to the memory manager. +//! +//!OverheadPercent is the (approximated) maximum size overhead (1-20%) of the allocator: +//!(memory usable for nodes / total memory allocated from the memory allocator) +template < class T + , std::size_t NodesPerBlock BOOST_CONTAINER_DOCONLY(= ADP_nodes_per_block) + , std::size_t MaxFreeBlocks BOOST_CONTAINER_DOCONLY(= ADP_max_free_blocks) + , std::size_t OverheadPercent BOOST_CONTAINER_DOCONLY(= ADP_overhead_percent) + BOOST_CONTAINER_DOCIGN(BOOST_MOVE_I unsigned Version) + > +class adaptive_pool +{ + //!If Version is 1, the allocator is a STL conforming allocator. If Version is 2, + //!the allocator offers advanced expand in place and burst allocation capabilities. + public: + typedef unsigned int allocation_type; + typedef adaptive_pool + self_t; + + static const std::size_t nodes_per_block = NodesPerBlock; + static const std::size_t max_free_blocks = MaxFreeBlocks; + static const std::size_t overhead_percent = OverheadPercent; + static const std::size_t real_nodes_per_block = NodesPerBlock; + + BOOST_CONTAINER_DOCIGN(BOOST_STATIC_ASSERT((Version <=2))); + + public: + //------- + typedef T value_type; + typedef T * pointer; + typedef const T * const_pointer; + typedef typename ::boost::container:: + dtl::unvoid_ref::type reference; + typedef typename ::boost::container:: + dtl::unvoid_ref::type const_reference; + typedef std::size_t size_type; + typedef std::ptrdiff_t difference_type; + + typedef boost::container::dtl:: + version_type version; + + #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + typedef boost::container::dtl:: + basic_multiallocation_chain multiallocation_chain_void; + typedef boost::container::dtl:: + transform_multiallocation_chain + multiallocation_chain; + #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + + //!Obtains adaptive_pool from + //!adaptive_pool + template + struct rebind + { + typedef adaptive_pool + < T2 + , NodesPerBlock + , MaxFreeBlocks + , OverheadPercent + BOOST_CONTAINER_DOCIGN(BOOST_MOVE_I Version) + > other; + }; + + #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + private: + //!Not assignable from related adaptive_pool + template + adaptive_pool& operator= + (const adaptive_pool&); + + #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + + public: + //!Default constructor + adaptive_pool() BOOST_NOEXCEPT_OR_NOTHROW + {} + + //!Copy constructor from other adaptive_pool. + adaptive_pool(const adaptive_pool &) BOOST_NOEXCEPT_OR_NOTHROW + {} + + //!Copy constructor from related adaptive_pool. + template + adaptive_pool + (const adaptive_pool &) BOOST_NOEXCEPT_OR_NOTHROW + {} + + //!Destructor + ~adaptive_pool() BOOST_NOEXCEPT_OR_NOTHROW + {} + + //!Returns the number of elements that could be allocated. + //!Never throws + size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW + { return size_type(-1)/sizeof(T); } + + //!Allocate memory for an array of count elements. + //!Throws std::bad_alloc if there is no enough memory + pointer allocate(size_type count, const void * = 0) + { + if(BOOST_UNLIKELY(count > this->max_size())) + boost::container::throw_bad_alloc(); + + if(Version == 1 && count == 1){ + typedef typename dtl::shared_adaptive_node_pool + shared_pool_t; + typedef dtl::singleton_default singleton_t; + return pointer(static_cast(singleton_t::instance().allocate_node())); + } + else{ + return static_cast(dlmalloc_malloc(count*sizeof(T))); + } + } + + //!Deallocate allocated memory. + //!Never throws + void deallocate(const pointer &ptr, size_type count) BOOST_NOEXCEPT_OR_NOTHROW + { + (void)count; + if(Version == 1 && count == 1){ + typedef dtl::shared_adaptive_node_pool + shared_pool_t; + typedef dtl::singleton_default singleton_t; + singleton_t::instance().deallocate_node(ptr); + } + else{ + dlmalloc_free(ptr); + } + } + + pointer allocation_command(allocation_type command, + size_type limit_size, + size_type &prefer_in_recvd_out_size, + pointer &reuse) + { + pointer ret = this->priv_allocation_command(command, limit_size, prefer_in_recvd_out_size, reuse); + if(BOOST_UNLIKELY(!ret && !(command & BOOST_CONTAINER_NOTHROW_ALLOCATION))) + boost::container::throw_bad_alloc(); + return ret; + } + + //!Returns maximum the number of objects the previously allocated memory + //!pointed by p can hold. + size_type size(pointer p) const BOOST_NOEXCEPT_OR_NOTHROW + { return dlmalloc_size(p); } + + //!Allocates just one object. Memory allocated with this function + //!must be deallocated only with deallocate_one(). + //!Throws bad_alloc if there is no enough memory + pointer allocate_one() + { + typedef dtl::shared_adaptive_node_pool + shared_pool_t; + typedef dtl::singleton_default singleton_t; + return (pointer)singleton_t::instance().allocate_node(); + } + + //!Allocates many elements of size == 1. + //!Elements must be individually deallocated with deallocate_one() + void allocate_individual(std::size_t num_elements, multiallocation_chain &chain) + { + typedef dtl::shared_adaptive_node_pool + shared_pool_t; + typedef dtl::singleton_default singleton_t; + singleton_t::instance().allocate_nodes(num_elements, static_cast(chain)); + //typename shared_pool_t::multiallocation_chain ch; + //singleton_t::instance().allocate_nodes(num_elements, ch); + //chain.incorporate_after + //(chain.before_begin(), (T*)&*ch.begin(), (T*)&*ch.last(), ch.size()); + } + + //!Deallocates memory previously allocated with allocate_one(). + //!You should never use deallocate_one to deallocate memory allocated + //!with other functions different from allocate_one(). Never throws + void deallocate_one(pointer p) BOOST_NOEXCEPT_OR_NOTHROW + { + typedef dtl::shared_adaptive_node_pool + shared_pool_t; + typedef dtl::singleton_default singleton_t; + singleton_t::instance().deallocate_node(p); + } + + void deallocate_individual(multiallocation_chain &chain) BOOST_NOEXCEPT_OR_NOTHROW + { + typedef dtl::shared_adaptive_node_pool + shared_pool_t; + typedef dtl::singleton_default singleton_t; + //typename shared_pool_t::multiallocation_chain ch(&*chain.begin(), &*chain.last(), chain.size()); + //singleton_t::instance().deallocate_nodes(ch); + singleton_t::instance().deallocate_nodes(chain); + } + + //!Allocates many elements of size elem_size. + //!Elements must be individually deallocated with deallocate() + void allocate_many(size_type elem_size, std::size_t n_elements, multiallocation_chain &chain) + { + BOOST_STATIC_ASSERT(( Version > 1 ));/* + dlmalloc_memchain ch; + BOOST_CONTAINER_MEMCHAIN_INIT(&ch); + if(BOOST_UNLIKELY(!dlmalloc_multialloc_nodes(n_elements, elem_size*sizeof(T), DL_MULTIALLOC_DEFAULT_CONTIGUOUS, &ch))){ + boost::container::throw_bad_alloc(); + } + chain.incorporate_after(chain.before_begin() + ,(T*)BOOST_CONTAINER_MEMCHAIN_FIRSTMEM(&ch) + ,(T*)BOOST_CONTAINER_MEMCHAIN_LASTMEM(&ch) + ,BOOST_CONTAINER_MEMCHAIN_SIZE(&ch) );*/ + if(BOOST_UNLIKELY(!dlmalloc_multialloc_nodes + (n_elements, elem_size*sizeof(T), DL_MULTIALLOC_DEFAULT_CONTIGUOUS, reinterpret_cast(&chain)))){ + boost::container::throw_bad_alloc(); + } + } + + //!Allocates n_elements elements, each one of size elem_sizes[i] + //!Elements must be individually deallocated with deallocate() + void allocate_many(const size_type *elem_sizes, size_type n_elements, multiallocation_chain &chain) + { + BOOST_STATIC_ASSERT(( Version > 1 ));/* + dlmalloc_memchain ch; + BOOST_CONTAINER_MEMCHAIN_INIT(&ch); + if(BOOST_UNLIKELY(!dlmalloc_multialloc_arrays(n_elements, elem_sizes, sizeof(T), DL_MULTIALLOC_DEFAULT_CONTIGUOUS, &ch))){ + boost::container::throw_bad_alloc(); + } + chain.incorporate_after(chain.before_begin() + ,(T*)BOOST_CONTAINER_MEMCHAIN_FIRSTMEM(&ch) + ,(T*)BOOST_CONTAINER_MEMCHAIN_LASTMEM(&ch) + ,BOOST_CONTAINER_MEMCHAIN_SIZE(&ch) );*/ + if(BOOST_UNLIKELY(!dlmalloc_multialloc_arrays + (n_elements, elem_sizes, sizeof(T), DL_MULTIALLOC_DEFAULT_CONTIGUOUS, reinterpret_cast(&chain)))){ + boost::container::throw_bad_alloc(); + } + } + + void deallocate_many(multiallocation_chain &chain) BOOST_NOEXCEPT_OR_NOTHROW + {/* + dlmalloc_memchain ch; + void *beg(&*chain.begin()), *last(&*chain.last()); + size_t size(chain.size()); + BOOST_CONTAINER_MEMCHAIN_INIT_FROM(&ch, beg, last, size); + dlmalloc_multidealloc(&ch);*/ + dlmalloc_multidealloc(reinterpret_cast(&chain)); + } + + //!Deallocates all free blocks of the pool + static void deallocate_free_blocks() BOOST_NOEXCEPT_OR_NOTHROW + { + typedef dtl::shared_adaptive_node_pool + shared_pool_t; + typedef dtl::singleton_default singleton_t; + singleton_t::instance().deallocate_free_blocks(); + } + + //!Swaps allocators. Does not throw. If each allocator is placed in a + //!different memory segment, the result is undefined. + friend void swap(adaptive_pool &, adaptive_pool &) BOOST_NOEXCEPT_OR_NOTHROW + {} + + //!An allocator always compares to true, as memory allocated with one + //!instance can be deallocated by another instance + friend bool operator==(const adaptive_pool &, const adaptive_pool &) BOOST_NOEXCEPT_OR_NOTHROW + { return true; } + + //!An allocator always compares to false, as memory allocated with one + //!instance can be deallocated by another instance + friend bool operator!=(const adaptive_pool &, const adaptive_pool &) BOOST_NOEXCEPT_OR_NOTHROW + { return false; } + + private: + pointer priv_allocation_command + (allocation_type command, std::size_t limit_size + ,size_type &prefer_in_recvd_out_size, pointer &reuse_ptr) + { + std::size_t const preferred_size = prefer_in_recvd_out_size; + dlmalloc_command_ret_t ret = {0 , 0}; + if(BOOST_UNLIKELY(limit_size > this->max_size() || preferred_size > this->max_size())){ + return pointer(); + } + std::size_t l_size = limit_size*sizeof(T); + std::size_t p_size = preferred_size*sizeof(T); + std::size_t r_size; + { + void* reuse_ptr_void = reuse_ptr; + ret = dlmalloc_allocation_command(command, sizeof(T), l_size, p_size, &r_size, reuse_ptr_void); + reuse_ptr = ret.second ? static_cast(reuse_ptr_void) : 0; + } + prefer_in_recvd_out_size = r_size/sizeof(T); + return (pointer)ret.first; + } +}; + +} //namespace container { +} //namespace boost { + +#include + +#endif //#ifndef BOOST_CONTAINER_ADAPTIVE_POOL_HPP diff --git a/libraries/boost/include/boost/container/allocator.hpp b/libraries/boost/include/boost/container/allocator.hpp new file mode 100644 index 0000000000..c0deb0a108 --- /dev/null +++ b/libraries/boost/include/boost/container/allocator.hpp @@ -0,0 +1,368 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2007-2013. 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) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// + +#ifndef BOOST_CONTAINER_ALLOCATOR_HPP +#define BOOST_CONTAINER_ALLOCATOR_HPP + +#ifndef BOOST_CONFIG_HPP +# include +#endif + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +//!\file + +namespace boost { +namespace container { + +#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + +template +class allocator +{ + typedef allocator self_t; + public: + typedef void value_type; + typedef void * pointer; + typedef const void* const_pointer; + typedef int & reference; + typedef const int & const_reference; + typedef std::size_t size_type; + typedef std::ptrdiff_t difference_type; + typedef boost::container::dtl:: + version_type version; + + #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + typedef boost::container::dtl:: + basic_multiallocation_chain multiallocation_chain; + #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + + //!Obtains an allocator that allocates + //!objects of type T2 + template + struct rebind + { + typedef allocator< T2 + #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + , Version, AllocationDisableMask + #endif + > other; + }; + + //!Default constructor + //!Never throws + allocator() + {} + + //!Constructor from other allocator. + //!Never throws + allocator(const allocator &) + {} + + //!Constructor from related allocator. + //!Never throws + template + allocator(const allocator &) + {} +}; + +#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + +//! This class is an extended STL-compatible that offers advanced allocation mechanism +//!(in-place expansion, shrinking, burst-allocation...) +//! +//! This allocator is a wrapper around a modified DLmalloc. +//! If Version is 1, the allocator is a STL conforming allocator. If Version is 2, +//! the allocator offers advanced expand in place and burst allocation capabilities. +//! +//! AllocationDisableMask works only if Version is 2 and it can be an inclusive OR +//! of allocation types the user wants to disable. +template< class T + , unsigned Version BOOST_CONTAINER_DOCONLY(=2) + , unsigned int AllocationDisableMask BOOST_CONTAINER_DOCONLY(=0)> +class allocator +{ + typedef unsigned int allocation_type; + #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + private: + + //Self type + typedef allocator self_t; + + //Not assignable from related allocator + template + allocator& operator=(const allocator&); + + static const unsigned int ForbiddenMask = + BOOST_CONTAINER_ALLOCATE_NEW | BOOST_CONTAINER_EXPAND_BWD | BOOST_CONTAINER_EXPAND_FWD ; + + //The mask can't disable all the allocation types + BOOST_STATIC_ASSERT(( (AllocationDisableMask & ForbiddenMask) != ForbiddenMask )); + + //The mask is only valid for version 2 allocators + BOOST_STATIC_ASSERT(( Version != 1 || (AllocationDisableMask == 0) )); + + #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + + public: + typedef T value_type; + typedef T * pointer; + typedef const T * const_pointer; + typedef T & reference; + typedef const T & const_reference; + typedef std::size_t size_type; + typedef std::ptrdiff_t difference_type; + + typedef boost::container::dtl:: + version_type version; + + #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + typedef boost::container::dtl:: + basic_multiallocation_chain void_multiallocation_chain; + + typedef boost::container::dtl:: + transform_multiallocation_chain + multiallocation_chain; + #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + + //!Obtains an allocator that allocates + //!objects of type T2 + template + struct rebind + { + typedef allocator other; + }; + + //!Default constructor + //!Never throws + allocator() BOOST_NOEXCEPT_OR_NOTHROW + {} + + //!Constructor from other allocator. + //!Never throws + allocator(const allocator &) BOOST_NOEXCEPT_OR_NOTHROW + {} + + //!Constructor from related allocator. + //!Never throws + template + allocator(const allocator &) BOOST_NOEXCEPT_OR_NOTHROW + {} + + //!Allocates memory for an array of count elements. + //!Throws std::bad_alloc if there is no enough memory + //!If Version is 2, this allocated memory can only be deallocated + //!with deallocate() or (for Version == 2) deallocate_many() + pointer allocate(size_type count, const void * hint= 0) + { + (void)hint; + if(count > this->max_size()) + boost::container::throw_bad_alloc(); + void *ret = dlmalloc_malloc(count*sizeof(T)); + if(!ret) + boost::container::throw_bad_alloc(); + return static_cast(ret); + } + + //!Deallocates previously allocated memory. + //!Never throws + void deallocate(pointer ptr, size_type) BOOST_NOEXCEPT_OR_NOTHROW + { dlmalloc_free(ptr); } + + //!Returns the maximum number of elements that could be allocated. + //!Never throws + size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW + { return size_type(-1)/sizeof(T); } + + //!Swaps two allocators, does nothing + //!because this allocator is stateless + friend void swap(self_t &, self_t &) BOOST_NOEXCEPT_OR_NOTHROW + {} + + //!An allocator always compares to true, as memory allocated with one + //!instance can be deallocated by another instance + friend bool operator==(const allocator &, const allocator &) BOOST_NOEXCEPT_OR_NOTHROW + { return true; } + + //!An allocator always compares to false, as memory allocated with one + //!instance can be deallocated by another instance + friend bool operator!=(const allocator &, const allocator &) BOOST_NOEXCEPT_OR_NOTHROW + { return false; } + + //!An advanced function that offers in-place expansion shrink to fit and new allocation + //!capabilities. Memory allocated with this function can only be deallocated with deallocate() + //!or deallocate_many(). + //!This function is available only with Version == 2 + pointer allocation_command(allocation_type command, + size_type limit_size, + size_type &prefer_in_recvd_out_size, + pointer &reuse) + { + BOOST_STATIC_ASSERT(( Version > 1 )); + const allocation_type mask(AllocationDisableMask); + command &= ~mask; + pointer ret = this->priv_allocation_command(command, limit_size, prefer_in_recvd_out_size, reuse); + if(!ret && !(command & BOOST_CONTAINER_NOTHROW_ALLOCATION)) + boost::container::throw_bad_alloc(); + return ret; + } + + //!Returns maximum the number of objects the previously allocated memory + //!pointed by p can hold. + //!Memory must not have been allocated with + //!allocate_one or allocate_individual. + //!This function is available only with Version == 2 + size_type size(pointer p) const BOOST_NOEXCEPT_OR_NOTHROW + { + BOOST_STATIC_ASSERT(( Version > 1 )); + return dlmalloc_size(p); + } + + //!Allocates just one object. Memory allocated with this function + //!must be deallocated only with deallocate_one(). + //!Throws bad_alloc if there is no enough memory + //!This function is available only with Version == 2 + pointer allocate_one() + { + BOOST_STATIC_ASSERT(( Version > 1 )); + return this->allocate(1); + } + + //!Allocates many elements of size == 1. + //!Elements must be individually deallocated with deallocate_one() + //!This function is available only with Version == 2 + void allocate_individual(std::size_t num_elements, multiallocation_chain &chain) + { + BOOST_STATIC_ASSERT(( Version > 1 )); + this->allocate_many(1, num_elements, chain); + } + + //!Deallocates memory previously allocated with allocate_one(). + //!You should never use deallocate_one to deallocate memory allocated + //!with other functions different from allocate_one() or allocate_individual. + //Never throws + void deallocate_one(pointer p) BOOST_NOEXCEPT_OR_NOTHROW + { + BOOST_STATIC_ASSERT(( Version > 1 )); + return this->deallocate(p, 1); + } + + //!Deallocates memory allocated with allocate_one() or allocate_individual(). + //!This function is available only with Version == 2 + void deallocate_individual(multiallocation_chain &chain) BOOST_NOEXCEPT_OR_NOTHROW + { + BOOST_STATIC_ASSERT(( Version > 1 )); + return this->deallocate_many(chain); + } + + //!Allocates many elements of size elem_size. + //!Elements must be individually deallocated with deallocate() + //!This function is available only with Version == 2 + void allocate_many(size_type elem_size, std::size_t n_elements, multiallocation_chain &chain) + { + BOOST_STATIC_ASSERT(( Version > 1 ));/* + dlmalloc_memchain ch; + BOOST_CONTAINER_MEMCHAIN_INIT(&ch); + if(!dlmalloc_multialloc_nodes(n_elements, elem_size*sizeof(T), DL_MULTIALLOC_DEFAULT_CONTIGUOUS, &ch)){ + boost::container::throw_bad_alloc(); + } + chain.incorporate_after(chain.before_begin() + ,(T*)BOOST_CONTAINER_MEMCHAIN_FIRSTMEM(&ch) + ,(T*)BOOST_CONTAINER_MEMCHAIN_LASTMEM(&ch) + ,BOOST_CONTAINER_MEMCHAIN_SIZE(&ch) );*/ + if(!dlmalloc_multialloc_nodes(n_elements, elem_size*sizeof(T), DL_MULTIALLOC_DEFAULT_CONTIGUOUS, reinterpret_cast(&chain))){ + boost::container::throw_bad_alloc(); + } + } + + //!Allocates n_elements elements, each one of size elem_sizes[i] + //!Elements must be individually deallocated with deallocate() + //!This function is available only with Version == 2 + void allocate_many(const size_type *elem_sizes, size_type n_elements, multiallocation_chain &chain) + { + BOOST_STATIC_ASSERT(( Version > 1 )); + dlmalloc_memchain ch; + BOOST_CONTAINER_MEMCHAIN_INIT(&ch); + if(!dlmalloc_multialloc_arrays(n_elements, elem_sizes, sizeof(T), DL_MULTIALLOC_DEFAULT_CONTIGUOUS, &ch)){ + boost::container::throw_bad_alloc(); + } + chain.incorporate_after(chain.before_begin() + ,(T*)BOOST_CONTAINER_MEMCHAIN_FIRSTMEM(&ch) + ,(T*)BOOST_CONTAINER_MEMCHAIN_LASTMEM(&ch) + ,BOOST_CONTAINER_MEMCHAIN_SIZE(&ch) ); + /* + if(!dlmalloc_multialloc_arrays(n_elements, elem_sizes, sizeof(T), DL_MULTIALLOC_DEFAULT_CONTIGUOUS, reinterpret_cast(&chain))){ + boost::container::throw_bad_alloc(); + }*/ + } + + //!Deallocates several elements allocated by + //!allocate_many(), allocate(), or allocation_command(). + //!This function is available only with Version == 2 + void deallocate_many(multiallocation_chain &chain) BOOST_NOEXCEPT_OR_NOTHROW + { + BOOST_STATIC_ASSERT(( Version > 1 )); + dlmalloc_memchain ch; + void *beg(&*chain.begin()), *last(&*chain.last()); + size_t size(chain.size()); + BOOST_CONTAINER_MEMCHAIN_INIT_FROM(&ch, beg, last, size); + dlmalloc_multidealloc(&ch); + //dlmalloc_multidealloc(reinterpret_cast(&chain)); + } + + private: + + pointer priv_allocation_command + (allocation_type command, std::size_t limit_size + ,size_type &prefer_in_recvd_out_size + ,pointer &reuse_ptr) + { + std::size_t const preferred_size = prefer_in_recvd_out_size; + dlmalloc_command_ret_t ret = {0 , 0}; + if((limit_size > this->max_size()) | (preferred_size > this->max_size())){ + return pointer(); + } + std::size_t l_size = limit_size*sizeof(T); + std::size_t p_size = preferred_size*sizeof(T); + std::size_t r_size; + { + void* reuse_ptr_void = reuse_ptr; + ret = dlmalloc_allocation_command(command, sizeof(T), l_size, p_size, &r_size, reuse_ptr_void); + reuse_ptr = ret.second ? static_cast(reuse_ptr_void) : 0; + } + prefer_in_recvd_out_size = r_size/sizeof(T); + return (pointer)ret.first; + } +}; + +} //namespace container { +} //namespace boost { + +#include + +#endif //BOOST_CONTAINER_ALLOCATOR_HPP + diff --git a/libraries/boost/include/boost/container/allocator_traits.hpp b/libraries/boost/include/boost/container/allocator_traits.hpp new file mode 100644 index 0000000000..af32f182b6 --- /dev/null +++ b/libraries/boost/include/boost/container/allocator_traits.hpp @@ -0,0 +1,477 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Pablo Halpern 2009. 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) +// +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2011-2013. 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) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// +#ifndef BOOST_CONTAINER_ALLOCATOR_ALLOCATOR_TRAITS_HPP +#define BOOST_CONTAINER_ALLOCATOR_ALLOCATOR_TRAITS_HPP + +#ifndef BOOST_CONFIG_HPP +# include +#endif + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + +#include +#include + +// container +#include +#include +#include //is_empty +#include +#ifndef BOOST_CONTAINER_DETAIL_STD_FWD_HPP +#include +#endif +// intrusive +#include +#include +// move +#include +// move/detail +#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) +#include +#endif +// other boost +#include + +#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + +#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME allocate +#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEG namespace boost { namespace container { namespace dtl { +#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END }}} +#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MIN 2 +#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MAX 2 +#include + +#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME destroy +#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEG namespace boost { namespace container { namespace dtl { +#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END }}} +#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MIN 1 +#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MAX 1 +#include + +#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME construct +#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEG namespace boost { namespace container { namespace dtl { +#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END }}} +#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MIN 1 +#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MAX 9 +#include + +#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + +namespace boost { +namespace container { + +#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + +template +class small_vector_allocator; + +namespace allocator_traits_detail { + +BOOST_INTRUSIVE_HAS_STATIC_MEMBER_FUNC_SIGNATURE(has_max_size, max_size) +BOOST_INTRUSIVE_HAS_STATIC_MEMBER_FUNC_SIGNATURE(has_select_on_container_copy_construction, select_on_container_copy_construction) + +} //namespace allocator_traits_detail { + +namespace dtl { + +//workaround needed for C++03 compilers with no construct() +//supporting rvalue references +template +struct is_std_allocator +{ static const bool value = false; }; + +template +struct is_std_allocator< std::allocator > +{ static const bool value = true; }; + +template +struct is_std_allocator< small_vector_allocator< std::allocator > > +{ static const bool value = true; }; + +template +struct is_not_std_allocator +{ static const bool value = !is_std_allocator::value; }; + +BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(pointer) +BOOST_INTRUSIVE_INSTANTIATE_EVAL_DEFAULT_TYPE_TMPLT(const_pointer) +BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(reference) +BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(const_reference) +BOOST_INTRUSIVE_INSTANTIATE_EVAL_DEFAULT_TYPE_TMPLT(void_pointer) +BOOST_INTRUSIVE_INSTANTIATE_EVAL_DEFAULT_TYPE_TMPLT(const_void_pointer) +BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(size_type) +BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(propagate_on_container_copy_assignment) +BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(propagate_on_container_move_assignment) +BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(propagate_on_container_swap) +BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(is_always_equal) +BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(difference_type) +BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(is_partially_propagable) + +} //namespace dtl { + +#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + +//! The class template allocator_traits supplies a uniform interface to all allocator types. +//! This class is a C++03-compatible implementation of std::allocator_traits +template +struct allocator_traits +{ + //allocator_type + typedef Allocator allocator_type; + //value_type + typedef typename allocator_type::value_type value_type; + + #if defined(BOOST_CONTAINER_DOXYGEN_INVOKED) + //! Allocator::pointer if such a type exists; otherwise, value_type* + //! + typedef unspecified pointer; + //! Allocator::const_pointer if such a type exists ; otherwise, pointer_traits::rebind::rebind. + //! + typedef see_documentation void_pointer; + //! Allocator::const_void_pointer if such a type exists ; otherwis e, pointer_traits::rebind::difference_type. + //! + typedef see_documentation difference_type; + //! Allocator::size_type if such a type exists ; otherwise, make_unsigned::type + //! + typedef see_documentation size_type; + //! Allocator::propagate_on_container_copy_assignment if such a type exists, otherwise a type + //! with an internal constant static boolean member value == false. + typedef see_documentation propagate_on_container_copy_assignment; + //! Allocator::propagate_on_container_move_assignment if such a type exists, otherwise a type + //! with an internal constant static boolean member value == false. + typedef see_documentation propagate_on_container_move_assignment; + //! Allocator::propagate_on_container_swap if such a type exists, otherwise a type + //! with an internal constant static boolean member value == false. + typedef see_documentation propagate_on_container_swap; + //! Allocator::is_always_equal if such a type exists, otherwise a type + //! with an internal constant static boolean member value == is_empty::value + typedef see_documentation is_always_equal; + //! Allocator::is_partially_propagable if such a type exists, otherwise a type + //! with an internal constant static boolean member value == false + //! Note: Non-standard extension used to implement `small_vector_allocator`. + typedef see_documentation is_partially_propagable; + //! Defines an allocator: Allocator::rebind::other if such a type exists; otherwise, Allocator + //! if Allocator is a class template instantiation of the form Allocator, where Args is zero or + //! more type arguments ; otherwise, the instantiation of rebind_alloc is ill-formed. + //! + //! In C++03 compilers rebind_alloc is a struct derived from an allocator + //! deduced by previously detailed rules. + template using rebind_alloc = see_documentation; + + //! In C++03 compilers rebind_traits is a struct derived from + //! allocator_traits, where OtherAlloc is + //! the allocator deduced by rules explained in rebind_alloc. + template using rebind_traits = allocator_traits >; + + //! Non-standard extension: Portable allocator rebind for C++03 and C++11 compilers. + //! type is an allocator related to Allocator deduced deduced by rules explained in rebind_alloc. + template + struct portable_rebind_alloc + { typedef see_documentation type; }; + #else + //pointer + typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(boost::container::dtl::, Allocator, + pointer, value_type*) + pointer; + //const_pointer + typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_EVAL_DEFAULT(boost::container::dtl::, Allocator, + const_pointer, typename boost::intrusive::pointer_traits::template + rebind_pointer) + const_pointer; + //reference + typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(boost::container::dtl::, Allocator, + reference, typename dtl::unvoid_ref::type) + reference; + //const_reference + typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(boost::container::dtl::, Allocator, + const_reference, typename dtl::unvoid_ref::type) + const_reference; + //void_pointer + typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_EVAL_DEFAULT(boost::container::dtl::, Allocator, + void_pointer, typename boost::intrusive::pointer_traits::template + rebind_pointer) + void_pointer; + //const_void_pointer + typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_EVAL_DEFAULT(boost::container::dtl::, Allocator, + const_void_pointer, typename boost::intrusive::pointer_traits::template + rebind_pointer) + const_void_pointer; + //difference_type + typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(boost::container::dtl::, Allocator, + difference_type, std::ptrdiff_t) + difference_type; + //size_type + typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(boost::container::dtl::, Allocator, + size_type, std::size_t) + size_type; + //propagate_on_container_copy_assignment + typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(boost::container::dtl::, Allocator, + propagate_on_container_copy_assignment, dtl::false_type) + propagate_on_container_copy_assignment; + //propagate_on_container_move_assignment + typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(boost::container::dtl::, Allocator, + propagate_on_container_move_assignment, dtl::false_type) + propagate_on_container_move_assignment; + //propagate_on_container_swap + typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(boost::container::dtl::, Allocator, + propagate_on_container_swap, dtl::false_type) + propagate_on_container_swap; + //is_always_equal + typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(boost::container::dtl::, Allocator, + is_always_equal, dtl::is_empty) + is_always_equal; + //is_partially_propagable + typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(boost::container::dtl::, Allocator, + is_partially_propagable, dtl::false_type) + is_partially_propagable; + + //rebind_alloc & rebind_traits + #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) + //C++11 + template using rebind_alloc = typename boost::intrusive::pointer_rebind::type; + template using rebind_traits = allocator_traits< rebind_alloc >; + #else // #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) + //Some workaround for C++03 or C++11 compilers with no template aliases + template + struct rebind_alloc : boost::intrusive::pointer_rebind::type + { + typedef typename boost::intrusive::pointer_rebind::type Base; + #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) + template + rebind_alloc(BOOST_FWD_REF(Args)... args) : Base(boost::forward(args)...) {} + #else // #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) + #define BOOST_CONTAINER_ALLOCATOR_TRAITS_REBIND_ALLOC(N) \ + BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N\ + explicit rebind_alloc(BOOST_MOVE_UREF##N) : Base(BOOST_MOVE_FWD##N){}\ + // + BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_ALLOCATOR_TRAITS_REBIND_ALLOC) + #undef BOOST_CONTAINER_ALLOCATOR_TRAITS_REBIND_ALLOC + #endif // #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) + }; + + template + struct rebind_traits + : allocator_traits::type> + {}; + #endif // #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) + + //portable_rebind_alloc + template + struct portable_rebind_alloc + { typedef typename boost::intrusive::pointer_rebind::type type; }; + #endif //BOOST_CONTAINER_DOXYGEN_INVOKED + + //! Returns: a.allocate(n) + //! + BOOST_CONTAINER_FORCEINLINE static pointer allocate(Allocator &a, size_type n) + { return a.allocate(n); } + + //! Returns: a.deallocate(p, n) + //! + //! Throws: Nothing + BOOST_CONTAINER_FORCEINLINE static void deallocate(Allocator &a, pointer p, size_type n) + { a.deallocate(p, n); } + + //! Effects: calls a.allocate(n, p) if that call is well-formed; + //! otherwise, invokes a.allocate(n) + BOOST_CONTAINER_FORCEINLINE static pointer allocate(Allocator &a, size_type n, const_void_pointer p) + { + const bool value = boost::container::dtl:: + has_member_function_callable_with_allocate + ::value; + dtl::bool_ flag; + return allocator_traits::priv_allocate(flag, a, n, p); + } + + //! Effects: calls a.destroy(p) if that call is well-formed; + //! otherwise, invokes p->~T(). + template + BOOST_CONTAINER_FORCEINLINE static void destroy(Allocator &a, T*p) BOOST_NOEXCEPT_OR_NOTHROW + { + typedef T* destroy_pointer; + const bool value = boost::container::dtl:: + has_member_function_callable_with_destroy + ::value; + dtl::bool_ flag; + allocator_traits::priv_destroy(flag, a, p); + } + + //! Returns: a.max_size() if that expression is well-formed; otherwise, + //! numeric_limits::max(). + BOOST_CONTAINER_FORCEINLINE static size_type max_size(const Allocator &a) BOOST_NOEXCEPT_OR_NOTHROW + { + const bool value = allocator_traits_detail::has_max_size::value; + dtl::bool_ flag; + return allocator_traits::priv_max_size(flag, a); + } + + //! Returns: a.select_on_container_copy_construction() if that expression is well-formed; + //! otherwise, a. + BOOST_CONTAINER_FORCEINLINE static BOOST_CONTAINER_DOC1ST(Allocator, + typename dtl::if_c + < allocator_traits_detail::has_select_on_container_copy_construction::value + BOOST_MOVE_I Allocator BOOST_MOVE_I const Allocator & >::type) + select_on_container_copy_construction(const Allocator &a) + { + const bool value = allocator_traits_detail::has_select_on_container_copy_construction + ::value; + dtl::bool_ flag; + return allocator_traits::priv_select_on_container_copy_construction(flag, a); + } + + #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED) + //! Effects: calls a.construct(p, std::forward(args)...) if that call is well-formed; + //! otherwise, invokes `placement new` (static_cast(p)) T(std::forward(args)...) + template + BOOST_CONTAINER_FORCEINLINE static void construct(Allocator & a, T* p, BOOST_FWD_REF(Args)... args) + { + static const bool value = ::boost::move_detail::and_ + < dtl::is_not_std_allocator + , boost::container::dtl::has_member_function_callable_with_construct + < Allocator, T*, Args... > + >::value; + dtl::bool_ flag; + allocator_traits::priv_construct(flag, a, p, ::boost::forward(args)...); + } + #endif + + //! Returns: a.storage_is_unpropagable(p) if is_partially_propagable::value is true; otherwise, + //! false. + BOOST_CONTAINER_FORCEINLINE static bool storage_is_unpropagable(const Allocator &a, pointer p) BOOST_NOEXCEPT_OR_NOTHROW + { + dtl::bool_ flag; + return allocator_traits::priv_storage_is_unpropagable(flag, a, p); + } + + //! Returns: true if is_always_equal::value == true, otherwise, + //! a == b. + BOOST_CONTAINER_FORCEINLINE static bool equal(const Allocator &a, const Allocator &b) BOOST_NOEXCEPT_OR_NOTHROW + { + dtl::bool_ flag; + return allocator_traits::priv_equal(flag, a, b); + } + + #if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED) + private: + BOOST_CONTAINER_FORCEINLINE static pointer priv_allocate(dtl::true_type, Allocator &a, size_type n, const_void_pointer p) + { return a.allocate(n, p); } + + BOOST_CONTAINER_FORCEINLINE static pointer priv_allocate(dtl::false_type, Allocator &a, size_type n, const_void_pointer) + { return a.allocate(n); } + + template + BOOST_CONTAINER_FORCEINLINE static void priv_destroy(dtl::true_type, Allocator &a, T* p) BOOST_NOEXCEPT_OR_NOTHROW + { a.destroy(p); } + + template + BOOST_CONTAINER_FORCEINLINE static void priv_destroy(dtl::false_type, Allocator &, T* p) BOOST_NOEXCEPT_OR_NOTHROW + { p->~T(); (void)p; } + + BOOST_CONTAINER_FORCEINLINE static size_type priv_max_size(dtl::true_type, const Allocator &a) BOOST_NOEXCEPT_OR_NOTHROW + { return a.max_size(); } + + BOOST_CONTAINER_FORCEINLINE static size_type priv_max_size(dtl::false_type, const Allocator &) BOOST_NOEXCEPT_OR_NOTHROW + { return size_type(-1)/sizeof(value_type); } + + BOOST_CONTAINER_FORCEINLINE static Allocator priv_select_on_container_copy_construction(dtl::true_type, const Allocator &a) + { return a.select_on_container_copy_construction(); } + + BOOST_CONTAINER_FORCEINLINE static const Allocator &priv_select_on_container_copy_construction(dtl::false_type, const Allocator &a) BOOST_NOEXCEPT_OR_NOTHROW + { return a; } + + #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) + template + BOOST_CONTAINER_FORCEINLINE static void priv_construct(dtl::true_type, Allocator &a, T *p, BOOST_FWD_REF(Args) ...args) + { a.construct( p, ::boost::forward(args)...); } + + template + BOOST_CONTAINER_FORCEINLINE static void priv_construct(dtl::false_type, Allocator &, T *p, BOOST_FWD_REF(Args) ...args) + { ::new((void*)p, boost_container_new_t()) T(::boost::forward(args)...); } + #else // #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) + public: + + #define BOOST_CONTAINER_ALLOCATOR_TRAITS_CONSTRUCT_IMPL(N) \ + template\ + BOOST_CONTAINER_FORCEINLINE static void construct(Allocator &a, T *p BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\ + {\ + static const bool value = ::boost::move_detail::and_ \ + < dtl::is_not_std_allocator \ + , boost::container::dtl::has_member_function_callable_with_construct \ + < Allocator, T* BOOST_MOVE_I##N BOOST_MOVE_FWD_T##N > \ + >::value; \ + dtl::bool_ flag;\ + (priv_construct)(flag, a, p BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\ + }\ + // + BOOST_MOVE_ITERATE_0TO8(BOOST_CONTAINER_ALLOCATOR_TRAITS_CONSTRUCT_IMPL) + #undef BOOST_CONTAINER_ALLOCATOR_TRAITS_CONSTRUCT_IMPL + + private: + ///////////////////////////////// + // priv_construct + ///////////////////////////////// + #define BOOST_CONTAINER_ALLOCATOR_TRAITS_PRIV_CONSTRUCT_IMPL(N) \ + template\ + BOOST_CONTAINER_FORCEINLINE static void priv_construct(dtl::true_type, Allocator &a, T *p BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\ + { a.construct( p BOOST_MOVE_I##N BOOST_MOVE_FWD##N ); }\ + \ + template\ + BOOST_CONTAINER_FORCEINLINE static void priv_construct(dtl::false_type, Allocator &, T *p BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\ + { ::new((void*)p, boost_container_new_t()) T(BOOST_MOVE_FWD##N); }\ + // + BOOST_MOVE_ITERATE_0TO8(BOOST_CONTAINER_ALLOCATOR_TRAITS_PRIV_CONSTRUCT_IMPL) + #undef BOOST_CONTAINER_ALLOCATOR_TRAITS_PRIV_CONSTRUCT_IMPL + + #endif // #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) + + template + BOOST_CONTAINER_FORCEINLINE static void priv_construct(dtl::false_type, Allocator &, T *p, const ::boost::container::default_init_t&) + { ::new((void*)p, boost_container_new_t()) T; } + + BOOST_CONTAINER_FORCEINLINE static bool priv_storage_is_unpropagable(dtl::true_type, const Allocator &a, pointer p) + { return a.storage_is_unpropagable(p); } + + BOOST_CONTAINER_FORCEINLINE static bool priv_storage_is_unpropagable(dtl::false_type, const Allocator &, pointer) + { return false; } + + BOOST_CONTAINER_FORCEINLINE static bool priv_equal(dtl::true_type, const Allocator &, const Allocator &) + { return true; } + + BOOST_CONTAINER_FORCEINLINE static bool priv_equal(dtl::false_type, const Allocator &a, const Allocator &b) + { return a == b; } + + #endif //#if defined(BOOST_CONTAINER_DOXYGEN_INVOKED) +}; + +} //namespace container { +} //namespace boost { + +#include + +#endif // ! defined(BOOST_CONTAINER_ALLOCATOR_ALLOCATOR_TRAITS_HPP) diff --git a/libraries/boost/include/boost/container/container_fwd.hpp b/libraries/boost/include/boost/container/container_fwd.hpp new file mode 100644 index 0000000000..e4fe6f85c3 --- /dev/null +++ b/libraries/boost/include/boost/container/container_fwd.hpp @@ -0,0 +1,296 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2005-2014. 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) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// + +#ifndef BOOST_CONTAINER_CONTAINER_FWD_HPP +#define BOOST_CONTAINER_CONTAINER_FWD_HPP + +#ifndef BOOST_CONFIG_HPP +# include +#endif + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + +//! \file +//! This header file forward declares the following containers: +//! - boost::container::vector +//! - boost::container::stable_vector +//! - boost::container::static_vector +//! - boost::container::small_vector +//! - boost::container::slist +//! - boost::container::list +//! - boost::container::set +//! - boost::container::multiset +//! - boost::container::map +//! - boost::container::multimap +//! - boost::container::flat_set +//! - boost::container::flat_multiset +//! - boost::container::flat_map +//! - boost::container::flat_multimap +//! - boost::container::basic_string +//! - boost::container::string +//! - boost::container::wstring +//! +//! Forward declares the following allocators: +//! - boost::container::allocator +//! - boost::container::node_allocator +//! - boost::container::adaptive_pool +//! +//! Forward declares the following polymorphic resource classes: +//! - boost::container::pmr::memory_resource +//! - boost::container::pmr::polymorphic_allocator +//! - boost::container::pmr::monotonic_buffer_resource +//! - boost::container::pmr::pool_options +//! - boost::container::pmr::unsynchronized_pool_resource +//! - boost::container::pmr::synchronized_pool_resource +//! +//! And finally it defines the following types + +#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + +//Std forward declarations +#ifndef BOOST_CONTAINER_DETAIL_STD_FWD_HPP + #include +#endif + +namespace boost{ +namespace intrusive{ +namespace detail{ + //Create namespace to avoid compilation errors +}}} + +namespace boost{ namespace container{ namespace dtl{ + namespace bi = boost::intrusive; + namespace bid = boost::intrusive::detail; +}}} + +namespace boost{ namespace container{ namespace pmr{ + namespace bi = boost::intrusive; + namespace bid = boost::intrusive::detail; +}}} + +#include + +#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + +////////////////////////////////////////////////////////////////////////////// +// Containers +////////////////////////////////////////////////////////////////////////////// + +namespace boost { +namespace container { + +#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + +template +class new_allocator; + +template + ,class Options = void> +class vector; + +template > +class stable_vector; + +template +class static_vector; + +template < class T, std::size_t N + , class Allocator= new_allocator > +class small_vector; + +template > +class deque; + +template > +class list; + +template > +class slist; + +template + ,class Allocator = new_allocator + ,class Options = void> +class set; + +template + ,class Allocator = new_allocator + ,class Options = void > +class multiset; + +template + ,class Allocator = new_allocator > + ,class Options = void > +class map; + +template + ,class Allocator = new_allocator > + ,class Options = void > +class multimap; + +template + ,class Allocator = new_allocator > +class flat_set; + +template + ,class Allocator = new_allocator > +class flat_multiset; + +template + ,class Allocator = new_allocator > > +class flat_map; + +template + ,class Allocator = new_allocator > > +class flat_multimap; + +template + ,class Allocator = new_allocator > +class basic_string; + +typedef basic_string + + ,new_allocator > +string; + +typedef basic_string + + ,new_allocator > +wstring; + +static const std::size_t ADP_nodes_per_block = 256u; +static const std::size_t ADP_max_free_blocks = 2u; +static const std::size_t ADP_overhead_percent = 1u; +static const std::size_t ADP_only_alignment = 0u; + +template < class T + , std::size_t NodesPerBlock = ADP_nodes_per_block + , std::size_t MaxFreeBlocks = ADP_max_free_blocks + , std::size_t OverheadPercent = ADP_overhead_percent + , unsigned Version = 2 + > +class adaptive_pool; + +template < class T + , unsigned Version = 2 + , unsigned int AllocationDisableMask = 0> +class allocator; + +static const std::size_t NodeAlloc_nodes_per_block = 256u; + +template + < class T + , std::size_t NodesPerBlock = NodeAlloc_nodes_per_block + , std::size_t Version = 2> +class node_allocator; + +namespace pmr { + +class memory_resource; + +template +class polymorphic_allocator; + +class monotonic_buffer_resource; + +struct pool_options; + +template +class resource_adaptor_imp; + +class unsynchronized_pool_resource; + +class synchronized_pool_resource; + +} //namespace pmr { + +#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + +//! Type used to tag that the input range is +//! guaranteed to be ordered +struct ordered_range_t +{}; + +//! Value used to tag that the input range is +//! guaranteed to be ordered +static const ordered_range_t ordered_range = ordered_range_t(); + +//! Type used to tag that the input range is +//! guaranteed to be ordered and unique +struct ordered_unique_range_t + : public ordered_range_t +{}; + +//! Value used to tag that the input range is +//! guaranteed to be ordered and unique +static const ordered_unique_range_t ordered_unique_range = ordered_unique_range_t(); + +//! Type used to tag that the inserted values +//! should be default initialized +struct default_init_t +{}; + +//! Value used to tag that the inserted values +//! should be default initialized +static const default_init_t default_init = default_init_t(); +#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + +//! Type used to tag that the inserted values +//! should be value initialized +struct value_init_t +{}; + +//! Value used to tag that the inserted values +//! should be value initialized +static const value_init_t value_init = value_init_t(); + +namespace container_detail_really_deep_namespace { + +//Otherwise, gcc issues a warning of previously defined +//anonymous_instance and unique_instance +struct dummy +{ + dummy() + { + (void)ordered_range; + (void)ordered_unique_range; + (void)default_init; + } +}; + +} //detail_really_deep_namespace { + + +#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + +}} //namespace boost { namespace container { + +#endif //#ifndef BOOST_CONTAINER_CONTAINER_FWD_HPP diff --git a/libraries/boost/include/boost/container/deque.hpp b/libraries/boost/include/boost/container/deque.hpp new file mode 100644 index 0000000000..9565144839 --- /dev/null +++ b/libraries/boost/include/boost/container/deque.hpp @@ -0,0 +1,2263 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2005-2015. 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) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// +#ifndef BOOST_CONTAINER_DEQUE_HPP +#define BOOST_CONTAINER_DEQUE_HPP + +#ifndef BOOST_CONFIG_HPP +# include +#endif + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + +#include +#include +// container +#include +#include +#include //new_allocator +#include +// container/detail +#include +#include //algo_equal(), algo_lexicographical_compare +#include +#include +#include +#include +#include +#include +#include +#include +#include +// move +#include +#include +#include +#include +// move/detail +#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) +#include +#endif +#include +// other +#include +#include +// std +#include + +#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST) +#include +#endif + +namespace boost { +namespace container { + +#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED +template +class deque; + +template +struct deque_value_traits +{ + typedef T value_type; + static const bool trivial_dctr = dtl::is_trivially_destructible::value; + static const bool trivial_dctr_after_move = ::boost::has_trivial_destructor_after_move::value; +}; + +// Note: this function is simply a kludge to work around several compilers' +// bugs in handling constant expressions. +template +struct deque_buf_size +{ + static const std::size_t min_size = 512u; + static const std::size_t sizeof_t = sizeof(T); + static const std::size_t value = sizeof_t < min_size ? (min_size/sizeof_t) : std::size_t(1); +}; + +namespace dtl { + +// Class invariants: +// For any nonsingular iterator i: +// i.node is the address of an element in the map array. The +// contents of i.node is a pointer to the beginning of a node. +// i.first == //(i.node) +// i.last == i.first + node_size +// i.cur is a pointer in the range [i.first, i.last). NOTE: +// the implication of this is that i.cur is always a dereferenceable +// pointer, even if i is a past-the-end iterator. +// Start and Finish are always nonsingular iterators. NOTE: this means +// that an empty deque must have one node, and that a deque +// with N elements, where N is the buffer size, must have two nodes. +// For every node other than start.node and finish.node, every element +// in the node is an initialized object. If start.node == finish.node, +// then [start.cur, finish.cur) are initialized objects, and +// the elements outside that range are uninitialized storage. Otherwise, +// [start.cur, start.last) and [finish.first, finish.cur) are initialized +// objects, and [start.first, start.cur) and [finish.cur, finish.last) +// are uninitialized storage. +// [map, map + map_size) is a valid, non-empty range. +// [start.node, finish.node] is a valid range contained within +// [map, map + map_size). +// A pointer in the range [map, map + map_size) points to an allocated node +// if and only if the pointer is in the range [start.node, finish.node]. +template +class deque_iterator +{ + public: + typedef std::random_access_iterator_tag iterator_category; + typedef typename boost::intrusive::pointer_traits::element_type value_type; + typedef typename boost::intrusive::pointer_traits::difference_type difference_type; + typedef typename if_c + < IsConst + , typename boost::intrusive::pointer_traits::template + rebind_pointer::type + , Pointer + >::type pointer; + typedef typename if_c + < IsConst + , const value_type& + , value_type& + >::type reference; + + static std::size_t s_buffer_size() + { return deque_buf_size::value; } + + typedef Pointer val_alloc_ptr; + typedef typename boost::intrusive::pointer_traits:: + template rebind_pointer::type index_pointer; + + Pointer m_cur; + Pointer m_first; + Pointer m_last; + index_pointer m_node; + + public: + + Pointer get_cur() const { return m_cur; } + Pointer get_first() const { return m_first; } + Pointer get_last() const { return m_last; } + index_pointer get_node() const { return m_node; } + + deque_iterator(val_alloc_ptr x, index_pointer y) BOOST_NOEXCEPT_OR_NOTHROW + : m_cur(x), m_first(*y), m_last(*y + s_buffer_size()), m_node(y) + {} + + deque_iterator() BOOST_NOEXCEPT_OR_NOTHROW + : m_cur(), m_first(), m_last(), m_node() //Value initialization to achieve "null iterators" (N3644) + {} + + deque_iterator(deque_iterator const& x) BOOST_NOEXCEPT_OR_NOTHROW + : m_cur(x.get_cur()), m_first(x.get_first()), m_last(x.get_last()), m_node(x.get_node()) + {} + + deque_iterator(Pointer cur, Pointer first, Pointer last, index_pointer node) BOOST_NOEXCEPT_OR_NOTHROW + : m_cur(cur), m_first(first), m_last(last), m_node(node) + {} + + deque_iterator unconst() const BOOST_NOEXCEPT_OR_NOTHROW + { + return deque_iterator(this->get_cur(), this->get_first(), this->get_last(), this->get_node()); + } + + reference operator*() const BOOST_NOEXCEPT_OR_NOTHROW + { return *this->m_cur; } + + pointer operator->() const BOOST_NOEXCEPT_OR_NOTHROW + { return this->m_cur; } + + difference_type operator-(const deque_iterator& x) const BOOST_NOEXCEPT_OR_NOTHROW + { + if(!this->m_cur && !x.m_cur){ + return 0; + } + return difference_type(this->s_buffer_size()) * (this->m_node - x.m_node - 1) + + (this->m_cur - this->m_first) + (x.m_last - x.m_cur); + } + + deque_iterator& operator++() BOOST_NOEXCEPT_OR_NOTHROW + { + ++this->m_cur; + if (this->m_cur == this->m_last) { + this->priv_set_node(this->m_node + 1); + this->m_cur = this->m_first; + } + return *this; + } + + deque_iterator operator++(int) BOOST_NOEXCEPT_OR_NOTHROW + { + deque_iterator tmp(*this); + ++*this; + return tmp; + } + + deque_iterator& operator--() BOOST_NOEXCEPT_OR_NOTHROW + { + if (this->m_cur == this->m_first) { + this->priv_set_node(this->m_node - 1); + this->m_cur = this->m_last; + } + --this->m_cur; + return *this; + } + + deque_iterator operator--(int) BOOST_NOEXCEPT_OR_NOTHROW + { + deque_iterator tmp(*this); + --*this; + return tmp; + } + + deque_iterator& operator+=(difference_type n) BOOST_NOEXCEPT_OR_NOTHROW + { + difference_type offset = n + (this->m_cur - this->m_first); + if (offset >= 0 && offset < difference_type(this->s_buffer_size())) + this->m_cur += n; + else { + difference_type node_offset = + offset > 0 ? offset / difference_type(this->s_buffer_size()) + : -difference_type((-offset - 1) / this->s_buffer_size()) - 1; + this->priv_set_node(this->m_node + node_offset); + this->m_cur = this->m_first + + (offset - node_offset * difference_type(this->s_buffer_size())); + } + return *this; + } + + deque_iterator operator+(difference_type n) const BOOST_NOEXCEPT_OR_NOTHROW + { deque_iterator tmp(*this); return tmp += n; } + + deque_iterator& operator-=(difference_type n) BOOST_NOEXCEPT_OR_NOTHROW + { return *this += -n; } + + deque_iterator operator-(difference_type n) const BOOST_NOEXCEPT_OR_NOTHROW + { deque_iterator tmp(*this); return tmp -= n; } + + reference operator[](difference_type n) const BOOST_NOEXCEPT_OR_NOTHROW + { return *(*this + n); } + + friend bool operator==(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW + { return l.m_cur == r.m_cur; } + + friend bool operator!=(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW + { return l.m_cur != r.m_cur; } + + friend bool operator<(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW + { return (l.m_node == r.m_node) ? (l.m_cur < r.m_cur) : (l.m_node < r.m_node); } + + friend bool operator>(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW + { return r < l; } + + friend bool operator<=(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW + { return !(r < l); } + + friend bool operator>=(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW + { return !(l < r); } + + void priv_set_node(index_pointer new_node) BOOST_NOEXCEPT_OR_NOTHROW + { + this->m_node = new_node; + this->m_first = *new_node; + this->m_last = this->m_first + this->s_buffer_size(); + } + + friend deque_iterator operator+(difference_type n, deque_iterator x) BOOST_NOEXCEPT_OR_NOTHROW + { return x += n; } +}; + +} //namespace dtl { + +// Deque base class. It has two purposes. First, its constructor +// and destructor allocate (but don't initialize) storage. This makes +// exception safety easier. +template +class deque_base +{ + BOOST_COPYABLE_AND_MOVABLE(deque_base) + public: + typedef allocator_traits val_alloc_traits_type; + typedef typename val_alloc_traits_type::value_type val_alloc_val; + typedef typename val_alloc_traits_type::pointer val_alloc_ptr; + typedef typename val_alloc_traits_type::const_pointer val_alloc_cptr; + typedef typename val_alloc_traits_type::reference val_alloc_ref; + typedef typename val_alloc_traits_type::const_reference val_alloc_cref; + typedef typename val_alloc_traits_type::difference_type val_alloc_diff; + typedef typename val_alloc_traits_type::size_type val_alloc_size; + typedef typename val_alloc_traits_type::template + portable_rebind_alloc::type ptr_alloc_t; + typedef allocator_traits ptr_alloc_traits_type; + typedef typename ptr_alloc_traits_type::value_type ptr_alloc_val; + typedef typename ptr_alloc_traits_type::pointer ptr_alloc_ptr; + typedef typename ptr_alloc_traits_type::const_pointer ptr_alloc_cptr; + typedef typename ptr_alloc_traits_type::reference ptr_alloc_ref; + typedef typename ptr_alloc_traits_type::const_reference ptr_alloc_cref; + typedef Allocator allocator_type; + typedef allocator_type stored_allocator_type; + typedef val_alloc_size size_type; + + protected: + + typedef deque_value_traits traits_t; + typedef ptr_alloc_t map_allocator_type; + + static size_type s_buffer_size() BOOST_NOEXCEPT_OR_NOTHROW + { return deque_buf_size::value; } + + val_alloc_ptr priv_allocate_node() + { return this->alloc().allocate(s_buffer_size()); } + + void priv_deallocate_node(val_alloc_ptr p) BOOST_NOEXCEPT_OR_NOTHROW + { this->alloc().deallocate(p, s_buffer_size()); } + + ptr_alloc_ptr priv_allocate_map(size_type n) + { return this->ptr_alloc().allocate(n); } + + void priv_deallocate_map(ptr_alloc_ptr p, size_type n) BOOST_NOEXCEPT_OR_NOTHROW + { this->ptr_alloc().deallocate(p, n); } + + typedef dtl::deque_iterator iterator; + typedef dtl::deque_iterator const_iterator; + + deque_base(size_type num_elements, const allocator_type& a) + : members_(a) + { this->priv_initialize_map(num_elements); } + + explicit deque_base(const allocator_type& a) + : members_(a) + {} + + deque_base() + : members_() + {} + + explicit deque_base(BOOST_RV_REF(deque_base) x) + : members_( boost::move(x.ptr_alloc()) + , boost::move(x.alloc()) ) + {} + + ~deque_base() + { + if (this->members_.m_map) { + this->priv_destroy_nodes(this->members_.m_start.m_node, this->members_.m_finish.m_node + 1); + this->priv_deallocate_map(this->members_.m_map, this->members_.m_map_size); + } + } + + private: + deque_base(const deque_base&); + + protected: + + void swap_members(deque_base &x) BOOST_NOEXCEPT_OR_NOTHROW + { + ::boost::adl_move_swap(this->members_.m_start, x.members_.m_start); + ::boost::adl_move_swap(this->members_.m_finish, x.members_.m_finish); + ::boost::adl_move_swap(this->members_.m_map, x.members_.m_map); + ::boost::adl_move_swap(this->members_.m_map_size, x.members_.m_map_size); + } + + void priv_initialize_map(size_type num_elements) + { +// if(num_elements){ + size_type num_nodes = num_elements / s_buffer_size() + 1; + + this->members_.m_map_size = dtl::max_value((size_type) InitialMapSize, num_nodes + 2); + this->members_.m_map = this->priv_allocate_map(this->members_.m_map_size); + + ptr_alloc_ptr nstart = this->members_.m_map + (this->members_.m_map_size - num_nodes) / 2; + ptr_alloc_ptr nfinish = nstart + num_nodes; + + BOOST_TRY { + this->priv_create_nodes(nstart, nfinish); + } + BOOST_CATCH(...){ + this->priv_deallocate_map(this->members_.m_map, this->members_.m_map_size); + this->members_.m_map = 0; + this->members_.m_map_size = 0; + BOOST_RETHROW + } + BOOST_CATCH_END + + this->members_.m_start.priv_set_node(nstart); + this->members_.m_finish.priv_set_node(nfinish - 1); + this->members_.m_start.m_cur = this->members_.m_start.m_first; + this->members_.m_finish.m_cur = this->members_.m_finish.m_first + + num_elements % s_buffer_size(); +// } + } + + void priv_create_nodes(ptr_alloc_ptr nstart, ptr_alloc_ptr nfinish) + { + ptr_alloc_ptr cur = nstart; + BOOST_TRY { + for (; cur < nfinish; ++cur) + *cur = this->priv_allocate_node(); + } + BOOST_CATCH(...){ + this->priv_destroy_nodes(nstart, cur); + BOOST_RETHROW + } + BOOST_CATCH_END + } + + void priv_destroy_nodes(ptr_alloc_ptr nstart, ptr_alloc_ptr nfinish) BOOST_NOEXCEPT_OR_NOTHROW + { + for (ptr_alloc_ptr n = nstart; n < nfinish; ++n) + this->priv_deallocate_node(*n); + } + + void priv_clear_map() BOOST_NOEXCEPT_OR_NOTHROW + { + if (this->members_.m_map) { + this->priv_destroy_nodes(this->members_.m_start.m_node, this->members_.m_finish.m_node + 1); + this->priv_deallocate_map(this->members_.m_map, this->members_.m_map_size); + this->members_.m_map = 0; + this->members_.m_map_size = 0; + this->members_.m_start = iterator(); + this->members_.m_finish = this->members_.m_start; + } + } + + enum { InitialMapSize = 8 }; + + protected: + struct members_holder + : public ptr_alloc_t + , public allocator_type + { + members_holder() + : map_allocator_type(), allocator_type() + , m_map(0), m_map_size(0) + , m_start(), m_finish(m_start) + {} + + explicit members_holder(const allocator_type &a) + : map_allocator_type(a), allocator_type(a) + , m_map(0), m_map_size(0) + , m_start(), m_finish(m_start) + {} + + template + members_holder(BOOST_FWD_REF(PtrAllocConvertible) pa, BOOST_FWD_REF(ValAllocConvertible) va) + : map_allocator_type(boost::forward(pa)) + , allocator_type (boost::forward(va)) + , m_map(0), m_map_size(0) + , m_start(), m_finish(m_start) + {} + + ptr_alloc_ptr m_map; + val_alloc_size m_map_size; + iterator m_start; + iterator m_finish; + } members_; + + ptr_alloc_t &ptr_alloc() BOOST_NOEXCEPT_OR_NOTHROW + { return members_; } + + const ptr_alloc_t &ptr_alloc() const BOOST_NOEXCEPT_OR_NOTHROW + { return members_; } + + allocator_type &alloc() BOOST_NOEXCEPT_OR_NOTHROW + { return members_; } + + const allocator_type &alloc() const BOOST_NOEXCEPT_OR_NOTHROW + { return members_; } +}; +#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + +#ifdef BOOST_CONTAINER_DOXYGEN_INVOKED +//! A double-ended queue is a sequence that supports random access to elements, constant time insertion +//! and removal of elements at the end of the sequence, and linear time insertion and removal of elements in the middle. +//! +//! \tparam T The type of object that is stored in the deque +//! \tparam Allocator The allocator used for all internal memory management +template > +#else +template +#endif +class deque : protected deque_base +{ + #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + private: + typedef deque_base Base; + #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + + public: + + ////////////////////////////////////////////// + // + // types + // + ////////////////////////////////////////////// + + typedef T value_type; + typedef typename ::boost::container::allocator_traits::pointer pointer; + typedef typename ::boost::container::allocator_traits::const_pointer const_pointer; + typedef typename ::boost::container::allocator_traits::reference reference; + typedef typename ::boost::container::allocator_traits::const_reference const_reference; + typedef typename ::boost::container::allocator_traits::size_type size_type; + typedef typename ::boost::container::allocator_traits::difference_type difference_type; + typedef Allocator allocator_type; + typedef BOOST_CONTAINER_IMPDEF(allocator_type) stored_allocator_type; + typedef BOOST_CONTAINER_IMPDEF(typename Base::iterator) iterator; + typedef BOOST_CONTAINER_IMPDEF(typename Base::const_iterator) const_iterator; + typedef BOOST_CONTAINER_IMPDEF(boost::container::reverse_iterator) reverse_iterator; + typedef BOOST_CONTAINER_IMPDEF(boost::container::reverse_iterator) const_reverse_iterator; + + #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + + private: // Internal typedefs + BOOST_COPYABLE_AND_MOVABLE(deque) + typedef typename Base::ptr_alloc_ptr index_pointer; + static size_type s_buffer_size() + { return Base::s_buffer_size(); } + typedef allocator_traits allocator_traits_type; + + #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + + public: + ////////////////////////////////////////////// + // + // construct/copy/destroy + // + ////////////////////////////////////////////// + + //! Effects: Default constructors a deque. + //! + //! Throws: If allocator_type's default constructor throws. + //! + //! Complexity: Constant. + deque() BOOST_NOEXCEPT_IF(dtl::is_nothrow_default_constructible::value) + : Base() + {} + + //! Effects: Constructs a deque taking the allocator as parameter. + //! + //! Throws: Nothing + //! + //! Complexity: Constant. + explicit deque(const allocator_type& a) BOOST_NOEXCEPT_OR_NOTHROW + : Base(a) + {} + + //! Effects: Constructs a deque + //! and inserts n value initialized values. + //! + //! Throws: If allocator_type's default constructor + //! throws or T's value initialization throws. + //! + //! Complexity: Linear to n. + explicit deque(size_type n) + : Base(n, allocator_type()) + { + dtl::insert_value_initialized_n_proxy proxy; + proxy.uninitialized_copy_n_and_update(this->alloc(), this->begin(), n); + //deque_base will deallocate in case of exception... + } + + //! Effects: Constructs a deque + //! and inserts n default initialized values. + //! + //! Throws: If allocator_type's default constructor + //! throws or T's default initialization or copy constructor throws. + //! + //! Complexity: Linear to n. + //! + //! Note: Non-standard extension + deque(size_type n, default_init_t) + : Base(n, allocator_type()) + { + dtl::insert_default_initialized_n_proxy proxy; + proxy.uninitialized_copy_n_and_update(this->alloc(), this->begin(), n); + //deque_base will deallocate in case of exception... + } + + //! Effects: Constructs a deque that will use a copy of allocator a + //! and inserts n value initialized values. + //! + //! Throws: If allocator_type's default constructor + //! throws or T's value initialization throws. + //! + //! Complexity: Linear to n. + explicit deque(size_type n, const allocator_type &a) + : Base(n, a) + { + dtl::insert_value_initialized_n_proxy proxy; + proxy.uninitialized_copy_n_and_update(this->alloc(), this->begin(), n); + //deque_base will deallocate in case of exception... + } + + //! Effects: Constructs a deque that will use a copy of allocator a + //! and inserts n default initialized values. + //! + //! Throws: If allocator_type's default constructor + //! throws or T's default initialization or copy constructor throws. + //! + //! Complexity: Linear to n. + //! + //! Note: Non-standard extension + deque(size_type n, default_init_t, const allocator_type &a) + : Base(n, a) + { + dtl::insert_default_initialized_n_proxy proxy; + proxy.uninitialized_copy_n_and_update(this->alloc(), this->begin(), n); + //deque_base will deallocate in case of exception... + } + + //! Effects: Constructs a deque that will use a copy of allocator a + //! and inserts n copies of value. + //! + //! Throws: If allocator_type's default constructor + //! throws or T's copy constructor throws. + //! + //! Complexity: Linear to n. + deque(size_type n, const value_type& value) + : Base(n, allocator_type()) + { this->priv_fill_initialize(value); } + + //! Effects: Constructs a deque that will use a copy of allocator a + //! and inserts n copies of value. + //! + //! Throws: If allocator_type's default constructor + //! throws or T's copy constructor throws. + //! + //! Complexity: Linear to n. + deque(size_type n, const value_type& value, const allocator_type& a) + : Base(n, a) + { this->priv_fill_initialize(value); } + + //! Effects: Constructs a deque that will use a copy of allocator a + //! and inserts a copy of the range [first, last) in the deque. + //! + //! Throws: If allocator_type's default constructor + //! throws or T's constructor taking a dereferenced InIt throws. + //! + //! Complexity: Linear to the range [first, last). + template + deque(InIt first, InIt last + #if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED) + , typename dtl::disable_if_convertible + ::type * = 0 + #endif + ) + : Base(allocator_type()) + { + this->priv_range_initialize(first, last); + } + + //! Effects: Constructs a deque that will use a copy of allocator a + //! and inserts a copy of the range [first, last) in the deque. + //! + //! Throws: If allocator_type's default constructor + //! throws or T's constructor taking a dereferenced InIt throws. + //! + //! Complexity: Linear to the range [first, last). + template + deque(InIt first, InIt last, const allocator_type& a + #if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED) + , typename dtl::disable_if_convertible + ::type * = 0 + #endif + ) + : Base(a) + { + this->priv_range_initialize(first, last); + } + +#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST) + //! Effects: Constructs a deque that will use a copy of allocator a + //! and inserts a copy of the range [il.begin(), il.end()) in the deque. + //! + //! Throws: If allocator_type's default constructor + //! throws or T's constructor taking a dereferenced std::initializer_list iterator throws. + //! + //! Complexity: Linear to the range [il.begin(), il.end()). + deque(std::initializer_list il, const allocator_type& a = allocator_type()) + : Base(a) + { + this->priv_range_initialize(il.begin(), il.end()); + } +#endif + + //! Effects: Copy constructs a deque. + //! + //! Postcondition: x == *this. + //! + //! Complexity: Linear to the elements x contains. + deque(const deque& x) + : Base(allocator_traits_type::select_on_container_copy_construction(x.alloc())) + { + if(x.size()){ + this->priv_initialize_map(x.size()); + boost::container::uninitialized_copy_alloc + (this->alloc(), x.begin(), x.end(), this->members_.m_start); + } + } + + //! Effects: Move constructor. Moves x's resources to *this. + //! + //! Throws: If allocator_type's copy constructor throws. + //! + //! Complexity: Constant. + deque(BOOST_RV_REF(deque) x) BOOST_NOEXCEPT_OR_NOTHROW + : Base(BOOST_MOVE_BASE(Base, x)) + { this->swap_members(x); } + + //! Effects: Copy constructs a vector using the specified allocator. + //! + //! Postcondition: x == *this. + //! + //! Throws: If allocation + //! throws or T's copy constructor throws. + //! + //! Complexity: Linear to the elements x contains. + deque(const deque& x, const allocator_type &a) + : Base(a) + { + if(x.size()){ + this->priv_initialize_map(x.size()); + boost::container::uninitialized_copy_alloc + (this->alloc(), x.begin(), x.end(), this->members_.m_start); + } + } + + //! Effects: Move constructor using the specified allocator. + //! Moves x's resources to *this if a == allocator_type(). + //! Otherwise copies values from x to *this. + //! + //! Throws: If allocation or T's copy constructor throws. + //! + //! Complexity: Constant if a == x.get_allocator(), linear otherwise. + deque(BOOST_RV_REF(deque) x, const allocator_type &a) + : Base(a) + { + if(x.alloc() == a){ + this->swap_members(x); + } + else{ + if(x.size()){ + this->priv_initialize_map(x.size()); + boost::container::uninitialized_copy_alloc + ( this->alloc(), boost::make_move_iterator(x.begin()) + , boost::make_move_iterator(x.end()), this->members_.m_start); + } + } + } + + //! Effects: Destroys the deque. All stored values are destroyed + //! and used memory is deallocated. + //! + //! Throws: Nothing. + //! + //! Complexity: Linear to the number of elements. + ~deque() BOOST_NOEXCEPT_OR_NOTHROW + { + this->priv_destroy_range(this->members_.m_start, this->members_.m_finish); + } + + //! Effects: Makes *this contain the same elements as x. + //! + //! Postcondition: this->size() == x.size(). *this contains a copy + //! of each of x's elements. + //! + //! Throws: If memory allocation throws or T's copy constructor throws. + //! + //! Complexity: Linear to the number of elements in x. + deque& operator= (BOOST_COPY_ASSIGN_REF(deque) x) + { + if (&x != this){ + allocator_type &this_alloc = this->alloc(); + const allocator_type &x_alloc = x.alloc(); + dtl::bool_ flag; + if(flag && this_alloc != x_alloc){ + this->clear(); + this->shrink_to_fit(); + } + dtl::assign_alloc(this->alloc(), x.alloc(), flag); + dtl::assign_alloc(this->ptr_alloc(), x.ptr_alloc(), flag); + this->assign(x.cbegin(), x.cend()); + } + return *this; + } + + //! Effects: Move assignment. All x's values are transferred to *this. + //! + //! Throws: If allocator_traits_type::propagate_on_container_move_assignment + //! is false and (allocation throws or value_type's move constructor throws) + //! + //! Complexity: Constant if allocator_traits_type:: + //! propagate_on_container_move_assignment is true or + //! this->get>allocator() == x.get_allocator(). Linear otherwise. + deque& operator= (BOOST_RV_REF(deque) x) + BOOST_NOEXCEPT_IF(allocator_traits_type::propagate_on_container_move_assignment::value + || allocator_traits_type::is_always_equal::value) + { + BOOST_ASSERT(this != &x); + allocator_type &this_alloc = this->alloc(); + allocator_type &x_alloc = x.alloc(); + const bool propagate_alloc = allocator_traits_type:: + propagate_on_container_move_assignment::value; + dtl::bool_ flag; + const bool allocators_equal = this_alloc == x_alloc; (void)allocators_equal; + //Resources can be transferred if both allocators are + //going to be equal after this function (either propagated or already equal) + if(propagate_alloc || allocators_equal){ + //Destroy objects but retain memory in case x reuses it in the future + this->clear(); + //Move allocator if needed + dtl::move_alloc(this_alloc, x_alloc, flag); + dtl::move_alloc(this->ptr_alloc(), x.ptr_alloc(), flag); + //Nothrow swap + this->swap_members(x); + } + //Else do a one by one move + else{ + this->assign( boost::make_move_iterator(x.begin()) + , boost::make_move_iterator(x.end())); + } + return *this; + } + +#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST) + //! Effects: Makes *this contain the same elements as il. + //! + //! Postcondition: this->size() == il.size(). *this contains a copy + //! of each of x's elements. + //! + //! Throws: If memory allocation throws or T's copy constructor throws. + //! + //! Complexity: Linear to the number of elements in il. + deque& operator=(std::initializer_list il) + { + this->assign(il.begin(), il.end()); + return *this; + } +#endif + + //! Effects: Assigns the n copies of val to *this. + //! + //! Throws: If memory allocation throws or T's copy constructor throws. + //! + //! Complexity: Linear to n. + void assign(size_type n, const T& val) + { + typedef constant_iterator c_it; + this->assign(c_it(val, n), c_it()); + } + + //! Effects: Assigns the the range [first, last) to *this. + //! + //! Throws: If memory allocation throws or + //! T's constructor from dereferencing InIt throws. + //! + //! Complexity: Linear to n. + template + void assign(InIt first, InIt last + #if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED) + , typename dtl::disable_if_or + < void + , dtl::is_convertible + , dtl::is_not_input_iterator + >::type * = 0 + #endif + ) + { + iterator cur = this->begin(); + for ( ; first != last && cur != end(); ++cur, ++first){ + *cur = *first; + } + if (first == last){ + this->erase(cur, this->cend()); + } + else{ + this->insert(this->cend(), first, last); + } + } + + #if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED) + template + void assign(FwdIt first, FwdIt last + , typename dtl::disable_if_or + < void + , dtl::is_convertible + , dtl::is_input_iterator + >::type * = 0 + ) + { + const size_type len = boost::container::iterator_distance(first, last); + if (len > size()) { + FwdIt mid = first; + boost::container::iterator_advance(mid, this->size()); + boost::container::copy(first, mid, begin()); + this->insert(this->cend(), mid, last); + } + else{ + this->erase(boost::container::copy(first, last, this->begin()), cend()); + } + } + #endif + +#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST) + //! Effects: Assigns the the range [il.begin(), il.end()) to *this. + //! + //! Throws: If memory allocation throws or + //! T's constructor from dereferencing std::initializer_list iterator throws. + //! + //! Complexity: Linear to il.size(). + void assign(std::initializer_list il) + { this->assign(il.begin(), il.end()); } +#endif + + //! Effects: Returns a copy of the internal allocator. + //! + //! Throws: If allocator's copy constructor throws. + //! + //! Complexity: Constant. + allocator_type get_allocator() const BOOST_NOEXCEPT_OR_NOTHROW + { return Base::alloc(); } + + //! Effects: Returns a reference to the internal allocator. + //! + //! Throws: Nothing + //! + //! Complexity: Constant. + //! + //! Note: Non-standard extension. + const stored_allocator_type &get_stored_allocator() const BOOST_NOEXCEPT_OR_NOTHROW + { return Base::alloc(); } + + ////////////////////////////////////////////// + // + // iterators + // + ////////////////////////////////////////////// + + //! Effects: Returns a reference to the internal allocator. + //! + //! Throws: Nothing + //! + //! Complexity: Constant. + //! + //! Note: Non-standard extension. + stored_allocator_type &get_stored_allocator() BOOST_NOEXCEPT_OR_NOTHROW + { return Base::alloc(); } + + //! Effects: Returns an iterator to the first element contained in the deque. + //! + //! Throws: Nothing. + //! + //! Complexity: Constant. + iterator begin() BOOST_NOEXCEPT_OR_NOTHROW + { return this->members_.m_start; } + + //! Effects: Returns a const_iterator to the first element contained in the deque. + //! + //! Throws: Nothing. + //! + //! Complexity: Constant. + const_iterator begin() const BOOST_NOEXCEPT_OR_NOTHROW + { return this->members_.m_start; } + + //! Effects: Returns an iterator to the end of the deque. + //! + //! Throws: Nothing. + //! + //! Complexity: Constant. + iterator end() BOOST_NOEXCEPT_OR_NOTHROW + { return this->members_.m_finish; } + + //! Effects: Returns a const_iterator to the end of the deque. + //! + //! Throws: Nothing. + //! + //! Complexity: Constant. + const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW + { return this->members_.m_finish; } + + //! Effects: Returns a reverse_iterator pointing to the beginning + //! of the reversed deque. + //! + //! Throws: Nothing. + //! + //! Complexity: Constant. + reverse_iterator rbegin() BOOST_NOEXCEPT_OR_NOTHROW + { return reverse_iterator(this->members_.m_finish); } + + //! Effects: Returns a const_reverse_iterator pointing to the beginning + //! of the reversed deque. + //! + //! Throws: Nothing. + //! + //! Complexity: Constant. + const_reverse_iterator rbegin() const BOOST_NOEXCEPT_OR_NOTHROW + { return const_reverse_iterator(this->members_.m_finish); } + + //! Effects: Returns a reverse_iterator pointing to the end + //! of the reversed deque. + //! + //! Throws: Nothing. + //! + //! Complexity: Constant. + reverse_iterator rend() BOOST_NOEXCEPT_OR_NOTHROW + { return reverse_iterator(this->members_.m_start); } + + //! Effects: Returns a const_reverse_iterator pointing to the end + //! of the reversed deque. + //! + //! Throws: Nothing. + //! + //! Complexity: Constant. + const_reverse_iterator rend() const BOOST_NOEXCEPT_OR_NOTHROW + { return const_reverse_iterator(this->members_.m_start); } + + //! Effects: Returns a const_iterator to the first element contained in the deque. + //! + //! Throws: Nothing. + //! + //! Complexity: Constant. + const_iterator cbegin() const BOOST_NOEXCEPT_OR_NOTHROW + { return this->members_.m_start; } + + //! Effects: Returns a const_iterator to the end of the deque. + //! + //! Throws: Nothing. + //! + //! Complexity: Constant. + const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW + { return this->members_.m_finish; } + + //! Effects: Returns a const_reverse_iterator pointing to the beginning + //! of the reversed deque. + //! + //! Throws: Nothing. + //! + //! Complexity: Constant. + const_reverse_iterator crbegin() const BOOST_NOEXCEPT_OR_NOTHROW + { return const_reverse_iterator(this->members_.m_finish); } + + //! Effects: Returns a const_reverse_iterator pointing to the end + //! of the reversed deque. + //! + //! Throws: Nothing. + //! + //! Complexity: Constant. + const_reverse_iterator crend() const BOOST_NOEXCEPT_OR_NOTHROW + { return const_reverse_iterator(this->members_.m_start); } + + ////////////////////////////////////////////// + // + // capacity + // + ////////////////////////////////////////////// + + //! Effects: Returns true if the deque contains no elements. + //! + //! Throws: Nothing. + //! + //! Complexity: Constant. + bool empty() const BOOST_NOEXCEPT_OR_NOTHROW + { return this->members_.m_finish == this->members_.m_start; } + + //! Effects: Returns the number of the elements contained in the deque. + //! + //! Throws: Nothing. + //! + //! Complexity: Constant. + size_type size() const BOOST_NOEXCEPT_OR_NOTHROW + { return this->members_.m_finish - this->members_.m_start; } + + //! Effects: Returns the largest possible size of the deque. + //! + //! Throws: Nothing. + //! + //! Complexity: Constant. + size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW + { return allocator_traits_type::max_size(this->alloc()); } + + //! Effects: Inserts or erases elements at the end such that + //! the size becomes n. New elements are value initialized. + //! + //! Throws: If memory allocation throws, or T's constructor throws. + //! + //! Complexity: Linear to the difference between size() and new_size. + void resize(size_type new_size) + { + const size_type len = size(); + if (new_size < len) + this->priv_erase_last_n(len - new_size); + else{ + const size_type n = new_size - this->size(); + dtl::insert_value_initialized_n_proxy proxy; + priv_insert_back_aux_impl(n, proxy); + } + } + + //! Effects: Inserts or erases elements at the end such that + //! the size becomes n. New elements are default initialized. + //! + //! Throws: If memory allocation throws, or T's constructor throws. + //! + //! Complexity: Linear to the difference between size() and new_size. + //! + //! Note: Non-standard extension + void resize(size_type new_size, default_init_t) + { + const size_type len = size(); + if (new_size < len) + this->priv_erase_last_n(len - new_size); + else{ + const size_type n = new_size - this->size(); + dtl::insert_default_initialized_n_proxy proxy; + priv_insert_back_aux_impl(n, proxy); + } + } + + //! Effects: Inserts or erases elements at the end such that + //! the size becomes n. New elements are copy constructed from x. + //! + //! Throws: If memory allocation throws, or T's copy constructor throws. + //! + //! Complexity: Linear to the difference between size() and new_size. + void resize(size_type new_size, const value_type& x) + { + const size_type len = size(); + if (new_size < len) + this->erase(this->members_.m_start + new_size, this->members_.m_finish); + else + this->insert(this->members_.m_finish, new_size - len, x); + } + + //! Effects: Tries to deallocate the excess of memory created + //! with previous allocations. The size of the deque is unchanged + //! + //! Throws: If memory allocation throws. + //! + //! Complexity: Constant. + void shrink_to_fit() + { + //This deque implementation already + //deallocates excess nodes when erasing + //so there is nothing to do except for + //empty deque + if(this->empty()){ + this->priv_clear_map(); + } + } + + ////////////////////////////////////////////// + // + // element access + // + ////////////////////////////////////////////// + + //! Requires: !empty() + //! + //! Effects: Returns a reference to the first + //! element of the container. + //! + //! Throws: Nothing. + //! + //! Complexity: Constant. + reference front() BOOST_NOEXCEPT_OR_NOTHROW + { + BOOST_ASSERT(!this->empty()); + return *this->members_.m_start; + } + + //! Requires: !empty() + //! + //! Effects: Returns a const reference to the first element + //! from the beginning of the container. + //! + //! Throws: Nothing. + //! + //! Complexity: Constant. + const_reference front() const BOOST_NOEXCEPT_OR_NOTHROW + { + BOOST_ASSERT(!this->empty()); + return *this->members_.m_start; + } + + //! Requires: !empty() + //! + //! Effects: Returns a reference to the last + //! element of the container. + //! + //! Throws: Nothing. + //! + //! Complexity: Constant. + reference back() BOOST_NOEXCEPT_OR_NOTHROW + { + BOOST_ASSERT(!this->empty()); + return *(end()-1); + } + + //! Requires: !empty() + //! + //! Effects: Returns a const reference to the last + //! element of the container. + //! + //! Throws: Nothing. + //! + //! Complexity: Constant. + const_reference back() const BOOST_NOEXCEPT_OR_NOTHROW + { + BOOST_ASSERT(!this->empty()); + return *(cend()-1); + } + + //! Requires: size() > n. + //! + //! Effects: Returns a reference to the nth element + //! from the beginning of the container. + //! + //! Throws: Nothing. + //! + //! Complexity: Constant. + reference operator[](size_type n) BOOST_NOEXCEPT_OR_NOTHROW + { + BOOST_ASSERT(this->size() > n); + return this->members_.m_start[difference_type(n)]; + } + + //! Requires: size() > n. + //! + //! Effects: Returns a const reference to the nth element + //! from the beginning of the container. + //! + //! Throws: Nothing. + //! + //! Complexity: Constant. + const_reference operator[](size_type n) const BOOST_NOEXCEPT_OR_NOTHROW + { + BOOST_ASSERT(this->size() > n); + return this->members_.m_start[difference_type(n)]; + } + + //! Requires: size() >= n. + //! + //! Effects: Returns an iterator to the nth element + //! from the beginning of the container. Returns end() + //! if n == size(). + //! + //! Throws: Nothing. + //! + //! Complexity: Constant. + //! + //! Note: Non-standard extension + iterator nth(size_type n) BOOST_NOEXCEPT_OR_NOTHROW + { + BOOST_ASSERT(this->size() >= n); + return iterator(this->begin()+n); + } + + //! Requires: size() >= n. + //! + //! Effects: Returns a const_iterator to the nth element + //! from the beginning of the container. Returns end() + //! if n == size(). + //! + //! Throws: Nothing. + //! + //! Complexity: Constant. + //! + //! Note: Non-standard extension + const_iterator nth(size_type n) const BOOST_NOEXCEPT_OR_NOTHROW + { + BOOST_ASSERT(this->size() >= n); + return const_iterator(this->cbegin()+n); + } + + //! Requires: begin() <= p <= end(). + //! + //! Effects: Returns the index of the element pointed by p + //! and size() if p == end(). + //! + //! Throws: Nothing. + //! + //! Complexity: Constant. + //! + //! Note: Non-standard extension + size_type index_of(iterator p) BOOST_NOEXCEPT_OR_NOTHROW + { + //Range checked priv_index_of + return this->priv_index_of(p); + } + + //! Requires: begin() <= p <= end(). + //! + //! Effects: Returns the index of the element pointed by p + //! and size() if p == end(). + //! + //! Throws: Nothing. + //! + //! Complexity: Constant. + //! + //! Note: Non-standard extension + size_type index_of(const_iterator p) const BOOST_NOEXCEPT_OR_NOTHROW + { + //Range checked priv_index_of + return this->priv_index_of(p); + } + + //! Requires: size() > n. + //! + //! Effects: Returns a reference to the nth element + //! from the beginning of the container. + //! + //! Throws: std::range_error if n >= size() + //! + //! Complexity: Constant. + reference at(size_type n) + { + this->priv_throw_if_out_of_range(n); + return (*this)[n]; + } + + //! Requires: size() > n. + //! + //! Effects: Returns a const reference to the nth element + //! from the beginning of the container. + //! + //! Throws: std::range_error if n >= size() + //! + //! Complexity: Constant. + const_reference at(size_type n) const + { + this->priv_throw_if_out_of_range(n); + return (*this)[n]; + } + + ////////////////////////////////////////////// + // + // modifiers + // + ////////////////////////////////////////////// + + #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED) + + //! Effects: Inserts an object of type T constructed with + //! std::forward(args)... in the beginning of the deque. + //! + //! Returns: A reference to the created object. + //! + //! Throws: If memory allocation throws or the in-place constructor throws. + //! + //! Complexity: Amortized constant time + template + reference emplace_front(BOOST_FWD_REF(Args)... args) + { + if(this->priv_push_front_simple_available()){ + reference r = *this->priv_push_front_simple_pos(); + allocator_traits_type::construct + ( this->alloc() + , this->priv_push_front_simple_pos() + , boost::forward(args)...); + this->priv_push_front_simple_commit(); + return r; + } + else{ + typedef dtl::insert_nonmovable_emplace_proxy type; + return *this->priv_insert_front_aux_impl(1, type(boost::forward(args)...)); + } + } + + //! Effects: Inserts an object of type T constructed with + //! std::forward(args)... in the end of the deque. + //! + //! Returns: A reference to the created object. + //! + //! Throws: If memory allocation throws or the in-place constructor throws. + //! + //! Complexity: Amortized constant time + template + reference emplace_back(BOOST_FWD_REF(Args)... args) + { + if(this->priv_push_back_simple_available()){ + reference r = *this->priv_push_back_simple_pos(); + allocator_traits_type::construct + ( this->alloc() + , this->priv_push_back_simple_pos() + , boost::forward(args)...); + this->priv_push_back_simple_commit(); + return r; + } + else{ + typedef dtl::insert_nonmovable_emplace_proxy type; + return *this->priv_insert_back_aux_impl(1, type(boost::forward(args)...)); + } + } + + //! Requires: p must be a valid iterator of *this. + //! + //! Effects: Inserts an object of type T constructed with + //! std::forward(args)... before p + //! + //! Throws: If memory allocation throws or the in-place constructor throws. + //! + //! Complexity: If p is end(), amortized constant time + //! Linear time otherwise. + template + iterator emplace(const_iterator p, BOOST_FWD_REF(Args)... args) + { + BOOST_ASSERT(this->priv_in_range_or_end(p)); + if(p == this->cbegin()){ + this->emplace_front(boost::forward(args)...); + return this->begin(); + } + else if(p == this->cend()){ + this->emplace_back(boost::forward(args)...); + return (this->end()-1); + } + else{ + typedef dtl::insert_emplace_proxy type; + return this->priv_insert_aux_impl(p, 1, type(boost::forward(args)...)); + } + } + + #else //!defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) + + #define BOOST_CONTAINER_DEQUE_EMPLACE_CODE(N) \ + BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N\ + reference emplace_front(BOOST_MOVE_UREF##N)\ + {\ + if(priv_push_front_simple_available()){\ + reference r = *this->priv_push_front_simple_pos();\ + allocator_traits_type::construct\ + ( this->alloc(), this->priv_push_front_simple_pos() BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\ + priv_push_front_simple_commit();\ + return r;\ + }\ + else{\ + typedef dtl::insert_nonmovable_emplace_proxy##N\ + type;\ + return *priv_insert_front_aux_impl(1, type(BOOST_MOVE_FWD##N));\ + }\ + }\ + \ + BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N\ + reference emplace_back(BOOST_MOVE_UREF##N)\ + {\ + if(priv_push_back_simple_available()){\ + reference r = *this->priv_push_back_simple_pos();\ + allocator_traits_type::construct\ + ( this->alloc(), this->priv_push_back_simple_pos() BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\ + priv_push_back_simple_commit();\ + return r;\ + }\ + else{\ + typedef dtl::insert_nonmovable_emplace_proxy##N\ + type;\ + return *priv_insert_back_aux_impl(1, type(BOOST_MOVE_FWD##N));\ + }\ + }\ + \ + BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N\ + iterator emplace(const_iterator p BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\ + {\ + BOOST_ASSERT(this->priv_in_range_or_end(p));\ + if(p == this->cbegin()){\ + this->emplace_front(BOOST_MOVE_FWD##N);\ + return this->begin();\ + }\ + else if(p == cend()){\ + this->emplace_back(BOOST_MOVE_FWD##N);\ + return (--this->end());\ + }\ + else{\ + typedef dtl::insert_emplace_proxy_arg##N\ + type;\ + return this->priv_insert_aux_impl(p, 1, type(BOOST_MOVE_FWD##N));\ + }\ + } + // + BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_DEQUE_EMPLACE_CODE) + #undef BOOST_CONTAINER_DEQUE_EMPLACE_CODE + + #endif // !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) + + #if defined(BOOST_CONTAINER_DOXYGEN_INVOKED) + //! Effects: Inserts a copy of x at the front of the deque. + //! + //! Throws: If memory allocation throws or + //! T's copy constructor throws. + //! + //! Complexity: Amortized constant time. + void push_front(const T &x); + + //! Effects: Constructs a new element in the front of the deque + //! and moves the resources of x to this new element. + //! + //! Throws: If memory allocation throws. + //! + //! Complexity: Amortized constant time. + void push_front(T &&x); + #else + BOOST_MOVE_CONVERSION_AWARE_CATCH(push_front, T, void, priv_push_front) + #endif + + #if defined(BOOST_CONTAINER_DOXYGEN_INVOKED) + //! Effects: Inserts a copy of x at the end of the deque. + //! + //! Throws: If memory allocation throws or + //! T's copy constructor throws. + //! + //! Complexity: Amortized constant time. + void push_back(const T &x); + + //! Effects: Constructs a new element in the end of the deque + //! and moves the resources of x to this new element. + //! + //! Throws: If memory allocation throws. + //! + //! Complexity: Amortized constant time. + void push_back(T &&x); + #else + BOOST_MOVE_CONVERSION_AWARE_CATCH(push_back, T, void, priv_push_back) + #endif + + #if defined(BOOST_CONTAINER_DOXYGEN_INVOKED) + + //! Requires: p must be a valid iterator of *this. + //! + //! Effects: Insert a copy of x before p. + //! + //! Returns: an iterator to the inserted element. + //! + //! Throws: If memory allocation throws or x's copy constructor throws. + //! + //! Complexity: If p is end(), amortized constant time + //! Linear time otherwise. + iterator insert(const_iterator p, const T &x); + + //! Requires: p must be a valid iterator of *this. + //! + //! Effects: Insert a new element before p with x's resources. + //! + //! Returns: an iterator to the inserted element. + //! + //! Throws: If memory allocation throws. + //! + //! Complexity: If p is end(), amortized constant time + //! Linear time otherwise. + iterator insert(const_iterator p, T &&x); + #else + BOOST_MOVE_CONVERSION_AWARE_CATCH_1ARG(insert, T, iterator, priv_insert, const_iterator, const_iterator) + #endif + + //! Requires: pos must be a valid iterator of *this. + //! + //! Effects: Insert n copies of x before pos. + //! + //! Returns: an iterator to the first inserted element or pos if n is 0. + //! + //! Throws: If memory allocation throws or T's copy constructor throws. + //! + //! Complexity: Linear to n. + iterator insert(const_iterator pos, size_type n, const value_type& x) + { + //Range check of p is done by insert() + typedef constant_iterator c_it; + return this->insert(pos, c_it(x, n), c_it()); + } + + //! Requires: pos must be a valid iterator of *this. + //! + //! Effects: Insert a copy of the [first, last) range before pos. + //! + //! Returns: an iterator to the first inserted element or pos if first == last. + //! + //! Throws: If memory allocation throws, T's constructor from a + //! dereferenced InIt throws or T's copy constructor throws. + //! + //! Complexity: Linear to distance [first, last). + template + iterator insert(const_iterator pos, InIt first, InIt last + #if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED) + , typename dtl::disable_if_or + < void + , dtl::is_convertible + , dtl::is_not_input_iterator + >::type * = 0 + #endif + ) + { + BOOST_ASSERT(this->priv_in_range_or_end(pos)); + size_type n = 0; + iterator it(pos.unconst()); + for(;first != last; ++first, ++n){ + it = this->emplace(it, *first); + ++it; + } + it -= n; + return it; + } + +#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST) + //! Requires: pos must be a valid iterator of *this. + //! + //! Effects: Insert a copy of the [il.begin(), il.end()) range before pos. + //! + //! Returns: an iterator to the first inserted element or pos if il.begin() == il.end(). + //! + //! Throws: If memory allocation throws, T's constructor from a + //! dereferenced std::initializer_list throws or T's copy constructor throws. + //! + //! Complexity: Linear to distance [il.begin(), il.end()). + iterator insert(const_iterator pos, std::initializer_list il) + { + //Range check os pos is done in insert() + return insert(pos, il.begin(), il.end()); + } +#endif + + #if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED) + template + iterator insert(const_iterator p, FwdIt first, FwdIt last + #if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED) + , typename dtl::disable_if_or + < void + , dtl::is_convertible + , dtl::is_input_iterator + >::type * = 0 + #endif + ) + { + BOOST_ASSERT(this->priv_in_range_or_end(p)); + dtl::insert_range_proxy proxy(first); + return priv_insert_aux_impl(p, boost::container::iterator_distance(first, last), proxy); + } + #endif + + //! Effects: Removes the first element from the deque. + //! + //! Throws: Nothing. + //! + //! Complexity: Constant time. + void pop_front() BOOST_NOEXCEPT_OR_NOTHROW + { + BOOST_ASSERT(!this->empty()); + if (this->members_.m_start.m_cur != this->members_.m_start.m_last - 1) { + allocator_traits_type::destroy + ( this->alloc() + , boost::movelib::to_raw_pointer(this->members_.m_start.m_cur) + ); + ++this->members_.m_start.m_cur; + } + else + this->priv_pop_front_aux(); + } + + //! Effects: Removes the last element from the deque. + //! + //! Throws: Nothing. + //! + //! Complexity: Constant time. + void pop_back() BOOST_NOEXCEPT_OR_NOTHROW + { + BOOST_ASSERT(!this->empty()); + if (this->members_.m_finish.m_cur != this->members_.m_finish.m_first) { + --this->members_.m_finish.m_cur; + allocator_traits_type::destroy + ( this->alloc() + , boost::movelib::to_raw_pointer(this->members_.m_finish.m_cur) + ); + } + else + this->priv_pop_back_aux(); + } + + //! Effects: Erases the element at p. + //! + //! Throws: Nothing. + //! + //! Complexity: Linear to the elements between pos and the + //! last element (if pos is near the end) or the first element + //! if(pos is near the beginning). + //! Constant if pos is the first or the last element. + iterator erase(const_iterator pos) BOOST_NOEXCEPT_OR_NOTHROW + { + BOOST_ASSERT(this->priv_in_range(pos)); + iterator next = pos.unconst(); + ++next; + size_type index = pos - this->members_.m_start; + if (index < (this->size()/2)) { + boost::container::move_backward(this->begin(), pos.unconst(), next); + pop_front(); + } + else { + boost::container::move(next, this->end(), pos.unconst()); + pop_back(); + } + return this->members_.m_start + index; + } + + //! Effects: Erases the elements pointed by [first, last). + //! + //! Throws: Nothing. + //! + //! Complexity: Linear to the distance between first and + //! last plus the elements between pos and the + //! last element (if pos is near the end) or the first element + //! if(pos is near the beginning). + iterator erase(const_iterator first, const_iterator last) BOOST_NOEXCEPT_OR_NOTHROW + { + BOOST_ASSERT(first == last || + (first < last && this->priv_in_range(first) && this->priv_in_range_or_end(last))); + if (first == this->members_.m_start && last == this->members_.m_finish) { + this->clear(); + return this->members_.m_finish; + } + else { + const size_type n = static_cast(last - first); + const size_type elems_before = static_cast(first - this->members_.m_start); + if (elems_before < (this->size() - n) - elems_before) { + boost::container::move_backward(begin(), first.unconst(), last.unconst()); + iterator new_start = this->members_.m_start + n; + this->priv_destroy_range(this->members_.m_start, new_start); + this->priv_destroy_nodes(this->members_.m_start.m_node, new_start.m_node); + this->members_.m_start = new_start; + } + else { + boost::container::move(last.unconst(), end(), first.unconst()); + iterator new_finish = this->members_.m_finish - n; + this->priv_destroy_range(new_finish, this->members_.m_finish); + this->priv_destroy_nodes(new_finish.m_node + 1, this->members_.m_finish.m_node + 1); + this->members_.m_finish = new_finish; + } + return this->members_.m_start + elems_before; + } + } + + //! Effects: Swaps the contents of *this and x. + //! + //! Throws: Nothing. + //! + //! Complexity: Constant. + void swap(deque &x) + BOOST_NOEXCEPT_IF(allocator_traits_type::propagate_on_container_swap::value + || allocator_traits_type::is_always_equal::value) + { + this->swap_members(x); + dtl::bool_ flag; + dtl::swap_alloc(this->alloc(), x.alloc(), flag); + dtl::swap_alloc(this->ptr_alloc(), x.ptr_alloc(), flag); + } + + //! Effects: Erases all the elements of the deque. + //! + //! Throws: Nothing. + //! + //! Complexity: Linear to the number of elements in the deque. + void clear() BOOST_NOEXCEPT_OR_NOTHROW + { + for (index_pointer node = this->members_.m_start.m_node + 1; + node < this->members_.m_finish.m_node; + ++node) { + this->priv_destroy_range(*node, *node + this->s_buffer_size()); + this->priv_deallocate_node(*node); + } + + if (this->members_.m_start.m_node != this->members_.m_finish.m_node) { + this->priv_destroy_range(this->members_.m_start.m_cur, this->members_.m_start.m_last); + this->priv_destroy_range(this->members_.m_finish.m_first, this->members_.m_finish.m_cur); + this->priv_deallocate_node(this->members_.m_finish.m_first); + } + else + this->priv_destroy_range(this->members_.m_start.m_cur, this->members_.m_finish.m_cur); + + this->members_.m_finish = this->members_.m_start; + } + + //! Effects: Returns true if x and y are equal + //! + //! Complexity: Linear to the number of elements in the container. + friend bool operator==(const deque& x, const deque& y) + { return x.size() == y.size() && ::boost::container::algo_equal(x.begin(), x.end(), y.begin()); } + + //! Effects: Returns true if x and y are unequal + //! + //! Complexity: Linear to the number of elements in the container. + friend bool operator!=(const deque& x, const deque& y) + { return !(x == y); } + + //! Effects: Returns true if x is less than y + //! + //! Complexity: Linear to the number of elements in the container. + friend bool operator<(const deque& x, const deque& y) + { return ::boost::container::algo_lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); } + + //! Effects: Returns true if x is greater than y + //! + //! Complexity: Linear to the number of elements in the container. + friend bool operator>(const deque& x, const deque& y) + { return y < x; } + + //! Effects: Returns true if x is equal or less than y + //! + //! Complexity: Linear to the number of elements in the container. + friend bool operator<=(const deque& x, const deque& y) + { return !(y < x); } + + //! Effects: Returns true if x is equal or greater than y + //! + //! Complexity: Linear to the number of elements in the container. + friend bool operator>=(const deque& x, const deque& y) + { return !(x < y); } + + //! Effects: x.swap(y) + //! + //! Complexity: Constant. + friend void swap(deque& x, deque& y) + { x.swap(y); } + + #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + private: + + size_type priv_index_of(const_iterator p) const + { + BOOST_ASSERT(this->cbegin() <= p); + BOOST_ASSERT(p <= this->cend()); + return static_cast(p - this->cbegin()); + } + + void priv_erase_last_n(size_type n) + { + if(n == this->size()) { + this->clear(); + } + else { + iterator new_finish = this->members_.m_finish - n; + this->priv_destroy_range(new_finish, this->members_.m_finish); + this->priv_destroy_nodes(new_finish.m_node + 1, this->members_.m_finish.m_node + 1); + this->members_.m_finish = new_finish; + } + } + + void priv_throw_if_out_of_range(size_type n) const + { + if (n >= this->size()) + throw_out_of_range("deque::at out of range"); + } + + bool priv_in_range(const_iterator pos) const + { + return (this->begin() <= pos) && (pos < this->end()); + } + + bool priv_in_range_or_end(const_iterator pos) const + { + return (this->begin() <= pos) && (pos <= this->end()); + } + + template + iterator priv_insert(const_iterator p, BOOST_FWD_REF(U) x) + { + BOOST_ASSERT(this->priv_in_range_or_end(p)); + if (p == cbegin()){ + this->push_front(::boost::forward(x)); + return begin(); + } + else if (p == cend()){ + this->push_back(::boost::forward(x)); + return --end(); + } + else { + return priv_insert_aux_impl + ( p, (size_type)1 + , dtl::get_insert_value_proxy(::boost::forward(x))); + } + } + + template + void priv_push_front(BOOST_FWD_REF(U) x) + { + if(this->priv_push_front_simple_available()){ + allocator_traits_type::construct + ( this->alloc(), this->priv_push_front_simple_pos(), ::boost::forward(x)); + this->priv_push_front_simple_commit(); + } + else{ + priv_insert_aux_impl + ( this->cbegin(), (size_type)1 + , dtl::get_insert_value_proxy(::boost::forward(x))); + } + } + + template + void priv_push_back(BOOST_FWD_REF(U) x) + { + if(this->priv_push_back_simple_available()){ + allocator_traits_type::construct + ( this->alloc(), this->priv_push_back_simple_pos(), ::boost::forward(x)); + this->priv_push_back_simple_commit(); + } + else{ + priv_insert_aux_impl + ( this->cend(), (size_type)1 + , dtl::get_insert_value_proxy(::boost::forward(x))); + } + } + + bool priv_push_back_simple_available() const + { + return this->members_.m_map && + (this->members_.m_finish.m_cur != (this->members_.m_finish.m_last - 1)); + } + + T *priv_push_back_simple_pos() const + { + return boost::movelib::to_raw_pointer(this->members_.m_finish.m_cur); + } + + void priv_push_back_simple_commit() + { + ++this->members_.m_finish.m_cur; + } + + bool priv_push_front_simple_available() const + { + return this->members_.m_map && + (this->members_.m_start.m_cur != this->members_.m_start.m_first); + } + + T *priv_push_front_simple_pos() const + { return boost::movelib::to_raw_pointer(this->members_.m_start.m_cur) - 1; } + + void priv_push_front_simple_commit() + { --this->members_.m_start.m_cur; } + + void priv_destroy_range(iterator p, iterator p2) + { + if(!Base::traits_t::trivial_dctr){ + for(;p != p2; ++p){ + allocator_traits_type::destroy(this->alloc(), boost::movelib::iterator_to_raw_pointer(p)); + } + } + } + + void priv_destroy_range(pointer p, pointer p2) + { + if(!Base::traits_t::trivial_dctr){ + for(;p != p2; ++p){ + allocator_traits_type::destroy(this->alloc(), boost::movelib::iterator_to_raw_pointer(p)); + } + } + } + + template + iterator priv_insert_aux_impl(const_iterator p, size_type n, InsertProxy proxy) + { + iterator pos(p.unconst()); + const size_type pos_n = p - this->cbegin(); + if(!this->members_.m_map){ + this->priv_initialize_map(0); + pos = this->begin(); + } + + const size_type elemsbefore = static_cast(pos - this->members_.m_start); + const size_type length = this->size(); + if (elemsbefore < length / 2) { + const iterator new_start = this->priv_reserve_elements_at_front(n); + const iterator old_start = this->members_.m_start; + if(!elemsbefore){ + proxy.uninitialized_copy_n_and_update(this->alloc(), new_start, n); + this->members_.m_start = new_start; + } + else{ + pos = this->members_.m_start + elemsbefore; + if (elemsbefore >= n) { + const iterator start_n = this->members_.m_start + n; + ::boost::container::uninitialized_move_alloc + (this->alloc(), this->members_.m_start, start_n, new_start); + this->members_.m_start = new_start; + boost::container::move(start_n, pos, old_start); + proxy.copy_n_and_update(this->alloc(), pos - n, n); + } + else { + const size_type mid_count = n - elemsbefore; + const iterator mid_start = old_start - mid_count; + proxy.uninitialized_copy_n_and_update(this->alloc(), mid_start, mid_count); + this->members_.m_start = mid_start; + ::boost::container::uninitialized_move_alloc + (this->alloc(), old_start, pos, new_start); + this->members_.m_start = new_start; + proxy.copy_n_and_update(this->alloc(), old_start, elemsbefore); + } + } + } + else { + const iterator new_finish = this->priv_reserve_elements_at_back(n); + const iterator old_finish = this->members_.m_finish; + const size_type elemsafter = length - elemsbefore; + if(!elemsafter){ + proxy.uninitialized_copy_n_and_update(this->alloc(), old_finish, n); + this->members_.m_finish = new_finish; + } + else{ + pos = old_finish - elemsafter; + if (elemsafter >= n) { + iterator finish_n = old_finish - difference_type(n); + ::boost::container::uninitialized_move_alloc + (this->alloc(), finish_n, old_finish, old_finish); + this->members_.m_finish = new_finish; + boost::container::move_backward(pos, finish_n, old_finish); + proxy.copy_n_and_update(this->alloc(), pos, n); + } + else { + const size_type raw_gap = n - elemsafter; + ::boost::container::uninitialized_move_alloc + (this->alloc(), pos, old_finish, old_finish + raw_gap); + BOOST_TRY{ + proxy.copy_n_and_update(this->alloc(), pos, elemsafter); + proxy.uninitialized_copy_n_and_update(this->alloc(), old_finish, raw_gap); + } + BOOST_CATCH(...){ + this->priv_destroy_range(old_finish, old_finish + elemsafter); + BOOST_RETHROW + } + BOOST_CATCH_END + this->members_.m_finish = new_finish; + } + } + } + return this->begin() + pos_n; + } + + template + iterator priv_insert_back_aux_impl(size_type n, InsertProxy proxy) + { + if(!this->members_.m_map){ + this->priv_initialize_map(0); + } + + iterator new_finish = this->priv_reserve_elements_at_back(n); + iterator old_finish = this->members_.m_finish; + proxy.uninitialized_copy_n_and_update(this->alloc(), old_finish, n); + this->members_.m_finish = new_finish; + return iterator(this->members_.m_finish - n); + } + + template + iterator priv_insert_front_aux_impl(size_type n, InsertProxy proxy) + { + if(!this->members_.m_map){ + this->priv_initialize_map(0); + } + + iterator new_start = this->priv_reserve_elements_at_front(n); + proxy.uninitialized_copy_n_and_update(this->alloc(), new_start, n); + this->members_.m_start = new_start; + return new_start; + } + + iterator priv_fill_insert(const_iterator pos, size_type n, const value_type& x) + { + typedef constant_iterator c_it; + return this->insert(pos, c_it(x, n), c_it()); + } + + // Precondition: this->members_.m_start and this->members_.m_finish have already been initialized, + // but none of the deque's elements have yet been constructed. + void priv_fill_initialize(const value_type& value) + { + index_pointer cur = this->members_.m_start.m_node; + BOOST_TRY { + for ( ; cur < this->members_.m_finish.m_node; ++cur){ + boost::container::uninitialized_fill_alloc + (this->alloc(), *cur, *cur + this->s_buffer_size(), value); + } + boost::container::uninitialized_fill_alloc + (this->alloc(), this->members_.m_finish.m_first, this->members_.m_finish.m_cur, value); + } + BOOST_CATCH(...){ + this->priv_destroy_range(this->members_.m_start, iterator(*cur, cur)); + BOOST_RETHROW + } + BOOST_CATCH_END + } + + template + void priv_range_initialize(InIt first, InIt last, typename iterator_enable_if_tag::type* =0) + { + this->priv_initialize_map(0); + BOOST_TRY { + for ( ; first != last; ++first) + this->emplace_back(*first); + } + BOOST_CATCH(...){ + this->clear(); + BOOST_RETHROW + } + BOOST_CATCH_END + } + + template + void priv_range_initialize(FwdIt first, FwdIt last, typename iterator_disable_if_tag::type* =0) + { + size_type n = 0; + n = boost::container::iterator_distance(first, last); + this->priv_initialize_map(n); + + index_pointer cur_node = this->members_.m_start.m_node; + BOOST_TRY { + for (; cur_node < this->members_.m_finish.m_node; ++cur_node) { + FwdIt mid = first; + boost::container::iterator_advance(mid, this->s_buffer_size()); + ::boost::container::uninitialized_copy_alloc(this->alloc(), first, mid, *cur_node); + first = mid; + } + ::boost::container::uninitialized_copy_alloc(this->alloc(), first, last, this->members_.m_finish.m_first); + } + BOOST_CATCH(...){ + this->priv_destroy_range(this->members_.m_start, iterator(*cur_node, cur_node)); + BOOST_RETHROW + } + BOOST_CATCH_END + } + + // Called only if this->members_.m_finish.m_cur == this->members_.m_finish.m_first. + void priv_pop_back_aux() BOOST_NOEXCEPT_OR_NOTHROW + { + this->priv_deallocate_node(this->members_.m_finish.m_first); + this->members_.m_finish.priv_set_node(this->members_.m_finish.m_node - 1); + this->members_.m_finish.m_cur = this->members_.m_finish.m_last - 1; + allocator_traits_type::destroy + ( this->alloc() + , boost::movelib::to_raw_pointer(this->members_.m_finish.m_cur) + ); + } + + // Called only if this->members_.m_start.m_cur == this->members_.m_start.m_last - 1. Note that + // if the deque has at least one element (a precondition for this member + // function), and if this->members_.m_start.m_cur == this->members_.m_start.m_last, then the deque + // must have at least two nodes. + void priv_pop_front_aux() BOOST_NOEXCEPT_OR_NOTHROW + { + allocator_traits_type::destroy + ( this->alloc() + , boost::movelib::to_raw_pointer(this->members_.m_start.m_cur) + ); + this->priv_deallocate_node(this->members_.m_start.m_first); + this->members_.m_start.priv_set_node(this->members_.m_start.m_node + 1); + this->members_.m_start.m_cur = this->members_.m_start.m_first; + } + + iterator priv_reserve_elements_at_front(size_type n) + { + size_type vacancies = this->members_.m_start.m_cur - this->members_.m_start.m_first; + if (n > vacancies){ + size_type new_elems = n-vacancies; + size_type new_nodes = (new_elems + this->s_buffer_size() - 1) / + this->s_buffer_size(); + size_type s = (size_type)(this->members_.m_start.m_node - this->members_.m_map); + if (new_nodes > s){ + this->priv_reallocate_map(new_nodes, true); + } + size_type i = 1; + BOOST_TRY { + for (; i <= new_nodes; ++i) + *(this->members_.m_start.m_node - i) = this->priv_allocate_node(); + } + BOOST_CATCH(...) { + for (size_type j = 1; j < i; ++j) + this->priv_deallocate_node(*(this->members_.m_start.m_node - j)); + BOOST_RETHROW + } + BOOST_CATCH_END + } + return this->members_.m_start - difference_type(n); + } + + iterator priv_reserve_elements_at_back(size_type n) + { + size_type vacancies = (this->members_.m_finish.m_last - this->members_.m_finish.m_cur) - 1; + if (n > vacancies){ + size_type new_elems = n - vacancies; + size_type new_nodes = (new_elems + this->s_buffer_size() - 1)/s_buffer_size(); + size_type s = (size_type)(this->members_.m_map_size - (this->members_.m_finish.m_node - this->members_.m_map)); + if (new_nodes + 1 > s){ + this->priv_reallocate_map(new_nodes, false); + } + size_type i = 1; + BOOST_TRY { + for (; i <= new_nodes; ++i) + *(this->members_.m_finish.m_node + i) = this->priv_allocate_node(); + } + BOOST_CATCH(...) { + for (size_type j = 1; j < i; ++j) + this->priv_deallocate_node(*(this->members_.m_finish.m_node + j)); + BOOST_RETHROW + } + BOOST_CATCH_END + } + return this->members_.m_finish + difference_type(n); + } + + void priv_reallocate_map(size_type nodes_to_add, bool add_at_front) + { + size_type old_num_nodes = this->members_.m_finish.m_node - this->members_.m_start.m_node + 1; + size_type new_num_nodes = old_num_nodes + nodes_to_add; + + index_pointer new_nstart; + if (this->members_.m_map_size > 2 * new_num_nodes) { + new_nstart = this->members_.m_map + (this->members_.m_map_size - new_num_nodes) / 2 + + (add_at_front ? nodes_to_add : 0); + if (new_nstart < this->members_.m_start.m_node) + boost::container::move(this->members_.m_start.m_node, this->members_.m_finish.m_node + 1, new_nstart); + else + boost::container::move_backward + (this->members_.m_start.m_node, this->members_.m_finish.m_node + 1, new_nstart + old_num_nodes); + } + else { + size_type new_map_size = + this->members_.m_map_size + dtl::max_value(this->members_.m_map_size, nodes_to_add) + 2; + + index_pointer new_map = this->priv_allocate_map(new_map_size); + new_nstart = new_map + (new_map_size - new_num_nodes) / 2 + + (add_at_front ? nodes_to_add : 0); + boost::container::move(this->members_.m_start.m_node, this->members_.m_finish.m_node + 1, new_nstart); + this->priv_deallocate_map(this->members_.m_map, this->members_.m_map_size); + + this->members_.m_map = new_map; + this->members_.m_map_size = new_map_size; + } + + this->members_.m_start.priv_set_node(new_nstart); + this->members_.m_finish.priv_set_node(new_nstart + old_num_nodes - 1); + } + #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED +}; + +}} + +#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + +namespace boost { + +//!has_trivial_destructor_after_move<> == true_type +//!specialization for optimizations +template +struct has_trivial_destructor_after_move > +{ + typedef typename ::boost::container::allocator_traits::pointer pointer; + static const bool value = ::boost::has_trivial_destructor_after_move::value && + ::boost::has_trivial_destructor_after_move::value; +}; + +} + +#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + +#include + +#endif // #ifndef BOOST_CONTAINER_DEQUE_HPP diff --git a/libraries/boost/include/boost/container/detail/adaptive_node_pool.hpp b/libraries/boost/include/boost/container/detail/adaptive_node_pool.hpp new file mode 100644 index 0000000000..33bfcc98a7 --- /dev/null +++ b/libraries/boost/include/boost/container/detail/adaptive_node_pool.hpp @@ -0,0 +1,166 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2005-2013. 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) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// + +#ifndef BOOST_CONTAINER_DETAIL_ADAPTIVE_NODE_POOL_HPP +#define BOOST_CONTAINER_DETAIL_ADAPTIVE_NODE_POOL_HPP + +#ifndef BOOST_CONFIG_HPP +# include +#endif + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + + +namespace boost { +namespace container { +namespace dtl { + +template +struct select_private_adaptive_node_pool_impl +{ + typedef boost::container::dtl:: + private_adaptive_node_pool_impl + < fake_segment_manager + , unsigned(AlignOnly)*::boost::container::adaptive_pool_flag::align_only + | ::boost::container::adaptive_pool_flag::size_ordered | ::boost::container::adaptive_pool_flag::address_ordered + > type; +}; + +//!Pooled memory allocator using an smart adaptive pool. Includes +//!a reference count but the class does not delete itself, this is +//!responsibility of user classes. Node size (NodeSize) and the number of +//!nodes allocated per block (NodesPerBlock) are known at compile time. +template< std::size_t NodeSize + , std::size_t NodesPerBlock + , std::size_t MaxFreeBlocks + , std::size_t OverheadPercent + > +class private_adaptive_node_pool + : public select_private_adaptive_node_pool_impl<(OverheadPercent == 0)>::type +{ + typedef typename select_private_adaptive_node_pool_impl::type base_t; + //Non-copyable + private_adaptive_node_pool(const private_adaptive_node_pool &); + private_adaptive_node_pool &operator=(const private_adaptive_node_pool &); + + public: + typedef typename base_t::multiallocation_chain multiallocation_chain; + static const std::size_t nodes_per_block = NodesPerBlock; + + //!Constructor. Never throws + private_adaptive_node_pool() + : base_t(0 + , NodeSize + , NodesPerBlock + , MaxFreeBlocks + , (unsigned char)OverheadPercent) + {} +}; + +//!Pooled memory allocator using adaptive pool. Includes +//!a reference count but the class does not delete itself, this is +//!responsibility of user classes. Node size (NodeSize) and the number of +//!nodes allocated per block (NodesPerBlock) are known at compile time +template< std::size_t NodeSize + , std::size_t NodesPerBlock + , std::size_t MaxFreeBlocks + , std::size_t OverheadPercent + > +class shared_adaptive_node_pool + : public private_adaptive_node_pool + +{ + private: + typedef private_adaptive_node_pool + private_node_allocator_t; + public: + typedef typename private_node_allocator_t::multiallocation_chain multiallocation_chain; + + //!Constructor. Never throws + shared_adaptive_node_pool() + : private_node_allocator_t(){} + + //!Destructor. Deallocates all allocated blocks. Never throws + ~shared_adaptive_node_pool() + {} + + //!Allocates array of count elements. Can throw std::bad_alloc + void *allocate_node() + { + //----------------------- + scoped_lock guard(mutex_); + //----------------------- + return private_node_allocator_t::allocate_node(); + } + + //!Deallocates an array pointed by ptr. Never throws + void deallocate_node(void *ptr) + { + //----------------------- + scoped_lock guard(mutex_); + //----------------------- + private_node_allocator_t::deallocate_node(ptr); + } + + //!Allocates a singly linked list of n nodes ending in null pointer. + //!can throw std::bad_alloc + void allocate_nodes(const std::size_t n, multiallocation_chain &chain) + { + //----------------------- + scoped_lock guard(mutex_); + //----------------------- + return private_node_allocator_t::allocate_nodes(n, chain); + } + + void deallocate_nodes(multiallocation_chain &chain) + { + //----------------------- + scoped_lock guard(mutex_); + //----------------------- + private_node_allocator_t::deallocate_nodes(chain); + } + + //!Deallocates all the free blocks of memory. Never throws + void deallocate_free_blocks() + { + //----------------------- + scoped_lock guard(mutex_); + //----------------------- + private_node_allocator_t::deallocate_free_blocks(); + } + + private: + default_mutex mutex_; +}; + +} //namespace dtl { +} //namespace container { +} //namespace boost { + +#include + +#endif //#ifndef BOOST_CONTAINER_DETAIL_ADAPTIVE_NODE_POOL_HPP diff --git a/libraries/boost/include/boost/container/detail/adaptive_node_pool_impl.hpp b/libraries/boost/include/boost/container/detail/adaptive_node_pool_impl.hpp new file mode 100644 index 0000000000..9ff4ec5371 --- /dev/null +++ b/libraries/boost/include/boost/container/detail/adaptive_node_pool_impl.hpp @@ -0,0 +1,885 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2005-2013. 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) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// + +#ifndef BOOST_CONTAINER_DETAIL_ADAPTIVE_NODE_POOL_IMPL_HPP +#define BOOST_CONTAINER_DETAIL_ADAPTIVE_NODE_POOL_IMPL_HPP + +#ifndef BOOST_CONFIG_HPP +# include +#endif + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + +#include +#include + +// container +#include +#include +// container/detail +#include +#include +#include +#include +#include +#include +#include +// intrusive +#include +#include +#include +#include +// other +#include +#include +#include + +namespace boost { +namespace container { + +namespace adaptive_pool_flag { + +static const unsigned int none = 0u; +static const unsigned int align_only = 1u << 0u; +static const unsigned int size_ordered = 1u << 1u; +static const unsigned int address_ordered = 1u << 2u; + +} //namespace adaptive_pool_flag{ + +namespace dtl { + +template +struct hdr_offset_holder_t +{ + hdr_offset_holder_t(size_type offset = 0) + : hdr_offset(offset) + {} + size_type hdr_offset; +}; + +template +struct less_func; + +template +struct less_func +{ + static bool less(SizeType, SizeType, const void *, const void *) + { return true; } +}; + +template +struct less_func +{ + static bool less(SizeType ls, SizeType rs, const void *, const void *) + { return ls < rs; } +}; + +template +struct less_func +{ + static bool less(SizeType, SizeType, const void *la, const void *ra) + { return &la < &ra; } +}; + +template +struct less_func +{ + static bool less(SizeType ls, SizeType rs, const void *la, const void *ra) + { return (ls < rs) || ((ls == rs) && (la < ra)); } +}; + +template +struct block_container_traits +{ + typedef typename bi::make_set_base_hook + < bi::void_pointer + , bi::optimize_size + , bi::link_mode >::type hook_t; + + template + struct container + { + typedef typename bi::make_multiset + , bi::size_type >::type type; + }; + + template + static void reinsert_was_used(Container &container, typename Container::reference v, bool) + { + typedef typename Container::const_iterator const_block_iterator; + const const_block_iterator this_block + (Container::s_iterator_to(const_cast(v))); + const_block_iterator next_block(this_block); + if(++next_block != container.cend()){ + if(this_block->free_nodes.size() > next_block->free_nodes.size()){ + container.erase(this_block); + container.insert(v); + } + } + } + + template + static void insert_was_empty(Container &container, typename Container::value_type &v, bool) + { + container.insert(v); + } + + template + static void erase_first(Container &container) + { + container.erase(container.cbegin()); + } + + template + static void erase_last(Container &container) + { + container.erase(--container.cend()); + } +}; + +template +struct block_container_traits +{ + typedef typename bi::make_list_base_hook + < bi::void_pointer + , bi::link_mode >::type hook_t; + + template + struct container + { + typedef typename bi::make_list + , bi::size_type, bi::constant_time_size >::type type; + }; + + template + static void reinsert_was_used(Container &container, typename Container::value_type &v, bool is_full) + { + if(is_full){ + container.erase(Container::s_iterator_to(v)); + container.push_back(v); + } + } + + template + static void insert_was_empty(Container &container, typename Container::value_type &v, bool is_full) + { + if(is_full){ + container.push_back(v); + } + else{ + container.push_front(v); + } + } + + template + static void erase_first(Container &container) + { + container.pop_front(); + } + + template + static void erase_last(Container &container) + { + container.pop_back(); + } +}; + +template +struct adaptive_pool_types +{ + typedef VoidPointer void_pointer; + static const bool ordered = (Flags & (adaptive_pool_flag::size_ordered | adaptive_pool_flag::address_ordered)) != 0; + typedef block_container_traits block_container_traits_t; + typedef typename block_container_traits_t::hook_t hook_t; + typedef hdr_offset_holder_t hdr_offset_holder; + static const unsigned int order_flags = Flags & (adaptive_pool_flag::size_ordered | adaptive_pool_flag::address_ordered); + typedef MultiallocationChain free_nodes_t; + + struct block_info_t + : public hdr_offset_holder, + public hook_t + { + //An intrusive list of free node from this block + free_nodes_t free_nodes; + friend bool operator <(const block_info_t &l, const block_info_t &r) + { + return less_func:: + less(l.free_nodes.size(), r.free_nodes.size(), &l , &r); + } + + friend bool operator ==(const block_info_t &l, const block_info_t &r) + { return &l == &r; } + }; + typedef typename block_container_traits_t:: template container::type block_container_t; +}; + +template +inline size_type calculate_alignment + ( size_type overhead_percent, size_type real_node_size + , size_type hdr_size, size_type hdr_offset_size, size_type payload_per_allocation) +{ + //to-do: handle real_node_size != node_size + const size_type divisor = overhead_percent*real_node_size; + const size_type dividend = hdr_offset_size*100; + size_type elements_per_subblock = (dividend - 1)/divisor + 1; + size_type candidate_power_of_2 = + upper_power_of_2(elements_per_subblock*real_node_size + hdr_offset_size); + bool overhead_satisfied = false; + //Now calculate the wors-case overhead for a subblock + const size_type max_subblock_overhead = hdr_size + payload_per_allocation; + while(!overhead_satisfied){ + elements_per_subblock = (candidate_power_of_2 - max_subblock_overhead)/real_node_size; + const size_type overhead_size = candidate_power_of_2 - elements_per_subblock*real_node_size; + if(overhead_size*100/candidate_power_of_2 < overhead_percent){ + overhead_satisfied = true; + } + else{ + candidate_power_of_2 <<= 1; + } + } + return candidate_power_of_2; +} + +template +inline void calculate_num_subblocks + (size_type alignment, size_type real_node_size, size_type elements_per_block + , size_type &num_subblocks, size_type &real_num_node, size_type overhead_percent + , size_type hdr_size, size_type hdr_offset_size, size_type payload_per_allocation) +{ + const size_type hdr_subblock_elements = (alignment - hdr_size - payload_per_allocation)/real_node_size; + size_type elements_per_subblock = (alignment - hdr_offset_size)/real_node_size; + size_type possible_num_subblock = (elements_per_block - 1)/elements_per_subblock + 1; + while(((possible_num_subblock-1)*elements_per_subblock + hdr_subblock_elements) < elements_per_block){ + ++possible_num_subblock; + } + elements_per_subblock = (alignment - hdr_offset_size)/real_node_size; + bool overhead_satisfied = false; + while(!overhead_satisfied){ + const size_type total_data = (elements_per_subblock*(possible_num_subblock-1) + hdr_subblock_elements)*real_node_size; + const size_type total_size = alignment*possible_num_subblock; + if((total_size - total_data)*100/total_size < overhead_percent){ + overhead_satisfied = true; + } + else{ + ++possible_num_subblock; + } + } + num_subblocks = possible_num_subblock; + real_num_node = (possible_num_subblock-1)*elements_per_subblock + hdr_subblock_elements; +} + +template +class private_adaptive_node_pool_impl +{ + //Non-copyable + private_adaptive_node_pool_impl(); + private_adaptive_node_pool_impl(const private_adaptive_node_pool_impl &); + private_adaptive_node_pool_impl &operator=(const private_adaptive_node_pool_impl &); + typedef private_adaptive_node_pool_impl this_type; + + typedef typename SegmentManagerBase::void_pointer void_pointer; + static const typename SegmentManagerBase:: + size_type PayloadPerAllocation = SegmentManagerBase::PayloadPerAllocation; + //Flags + //align_only + static const bool AlignOnly = (Flags & adaptive_pool_flag::align_only) != 0; + typedef bool_ IsAlignOnly; + typedef true_ AlignOnlyTrue; + typedef false_ AlignOnlyFalse; + //size_ordered + static const bool SizeOrdered = (Flags & adaptive_pool_flag::size_ordered) != 0; + typedef bool_ IsSizeOrdered; + typedef true_ SizeOrderedTrue; + typedef false_ SizeOrderedFalse; + //address_ordered + static const bool AddressOrdered = (Flags & adaptive_pool_flag::address_ordered) != 0; + typedef bool_ IsAddressOrdered; + typedef true_ AddressOrderedTrue; + typedef false_ AddressOrderedFalse; + + public: + typedef typename SegmentManagerBase::multiallocation_chain multiallocation_chain; + typedef typename SegmentManagerBase::size_type size_type; + + private: + typedef adaptive_pool_types + adaptive_pool_types_t; + typedef typename adaptive_pool_types_t::free_nodes_t free_nodes_t; + typedef typename adaptive_pool_types_t::block_info_t block_info_t; + typedef typename adaptive_pool_types_t::block_container_t block_container_t; + typedef typename adaptive_pool_types_t::block_container_traits_t block_container_traits_t; + typedef typename block_container_t::iterator block_iterator; + typedef typename block_container_t::const_iterator const_block_iterator; + typedef typename adaptive_pool_types_t::hdr_offset_holder hdr_offset_holder; + + static const size_type MaxAlign = alignment_of::value; + static const size_type HdrSize = ((sizeof(block_info_t)-1)/MaxAlign+1)*MaxAlign; + static const size_type HdrOffsetSize = ((sizeof(hdr_offset_holder)-1)/MaxAlign+1)*MaxAlign; + + public: + //!Segment manager typedef + typedef SegmentManagerBase segment_manager_base_type; + + //!Constructor from a segment manager. Never throws + private_adaptive_node_pool_impl + ( segment_manager_base_type *segment_mngr_base + , size_type node_size + , size_type nodes_per_block + , size_type max_free_blocks + , unsigned char overhead_percent + ) + : m_max_free_blocks(max_free_blocks) + , m_real_node_size(lcm(node_size, size_type(alignment_of::value))) + //Round the size to a power of two value. + //This is the total memory size (including payload) that we want to + //allocate from the general-purpose allocator + , m_real_block_alignment + (AlignOnly ? + upper_power_of_2(HdrSize + m_real_node_size*nodes_per_block) : + calculate_alignment( (size_type)overhead_percent, m_real_node_size + , HdrSize, HdrOffsetSize, PayloadPerAllocation)) + //This is the real number of nodes per block + , m_num_subblocks(0) + , m_real_num_node(AlignOnly ? (m_real_block_alignment - PayloadPerAllocation - HdrSize)/m_real_node_size : 0) + //General purpose allocator + , mp_segment_mngr_base(segment_mngr_base) + , m_block_container() + , m_totally_free_blocks(0) + { + if(!AlignOnly){ + calculate_num_subblocks + ( m_real_block_alignment + , m_real_node_size + , nodes_per_block + , m_num_subblocks + , m_real_num_node + , (size_type)overhead_percent + , HdrSize + , HdrOffsetSize + , PayloadPerAllocation); + } + } + + //!Destructor. Deallocates all allocated blocks. Never throws + ~private_adaptive_node_pool_impl() + { this->priv_clear(); } + + size_type get_real_num_node() const + { return m_real_num_node; } + + //!Returns the segment manager. Never throws + segment_manager_base_type* get_segment_manager_base()const + { return boost::movelib::to_raw_pointer(mp_segment_mngr_base); } + + //!Allocates array of count elements. Can throw + void *allocate_node() + { + this->priv_invariants(); + //If there are no free nodes we allocate a new block + if(!m_block_container.empty()){ + //We take the first free node the multiset can't be empty + free_nodes_t &free_nodes = m_block_container.begin()->free_nodes; + BOOST_ASSERT(!free_nodes.empty()); + const size_type free_nodes_count = free_nodes.size(); + void *first_node = boost::movelib::to_raw_pointer(free_nodes.pop_front()); + if(free_nodes.empty()){ + block_container_traits_t::erase_first(m_block_container); + } + m_totally_free_blocks -= static_cast(free_nodes_count == m_real_num_node); + this->priv_invariants(); + return first_node; + } + else{ + multiallocation_chain chain; + this->priv_append_from_new_blocks(1, chain, IsAlignOnly()); + return boost::movelib::to_raw_pointer(chain.pop_front()); + } + } + + //!Deallocates an array pointed by ptr. Never throws + void deallocate_node(void *pElem) + { + this->priv_invariants(); + block_info_t &block_info = *this->priv_block_from_node(pElem); + BOOST_ASSERT(block_info.free_nodes.size() < m_real_num_node); + + //We put the node at the beginning of the free node list + block_info.free_nodes.push_back(void_pointer(pElem)); + + //The loop reinserts all blocks except the last one + this->priv_reinsert_block(block_info, block_info.free_nodes.size() == 1); + this->priv_deallocate_free_blocks(m_max_free_blocks); + this->priv_invariants(); + } + + //!Allocates n nodes. + //!Can throw + void allocate_nodes(const size_type n, multiallocation_chain &chain) + { + size_type i = 0; + BOOST_TRY{ + this->priv_invariants(); + while(i != n){ + //If there are no free nodes we allocate all needed blocks + if (m_block_container.empty()){ + this->priv_append_from_new_blocks(n - i, chain, IsAlignOnly()); + BOOST_ASSERT(m_block_container.empty() || (++m_block_container.cbegin() == m_block_container.cend())); + BOOST_ASSERT(chain.size() == n); + break; + } + free_nodes_t &free_nodes = m_block_container.begin()->free_nodes; + const size_type free_nodes_count_before = free_nodes.size(); + m_totally_free_blocks -= static_cast(free_nodes_count_before == m_real_num_node); + const size_type num_left = n-i; + const size_type num_elems = (num_left < free_nodes_count_before) ? num_left : free_nodes_count_before; + typedef typename free_nodes_t::iterator free_nodes_iterator; + + if(num_left < free_nodes_count_before){ + const free_nodes_iterator it_bbeg(free_nodes.before_begin()); + free_nodes_iterator it_bend(it_bbeg); + for(size_type j = 0; j != num_elems; ++j){ + ++it_bend; + } + free_nodes_iterator it_end = it_bend; ++it_end; + free_nodes_iterator it_beg = it_bbeg; ++it_beg; + free_nodes.erase_after(it_bbeg, it_end, num_elems); + chain.incorporate_after(chain.last(), &*it_beg, &*it_bend, num_elems); + //chain.splice_after(chain.last(), free_nodes, it_bbeg, it_bend, num_elems); + BOOST_ASSERT(!free_nodes.empty()); + } + else{ + const free_nodes_iterator it_beg(free_nodes.begin()), it_bend(free_nodes.last()); + free_nodes.clear(); + chain.incorporate_after(chain.last(), &*it_beg, &*it_bend, num_elems); + block_container_traits_t::erase_first(m_block_container); + } + i += num_elems; + } + } + BOOST_CATCH(...){ + this->deallocate_nodes(chain); + BOOST_RETHROW + } + BOOST_CATCH_END + this->priv_invariants(); + } + + //!Deallocates a linked list of nodes. Never throws + void deallocate_nodes(multiallocation_chain &nodes) + { + this->priv_invariants(); + //To take advantage of node locality, wait until two + //nodes belong to different blocks. Only then reinsert + //the block of the first node in the block tree. + //Cache of the previous block + block_info_t *prev_block_info = 0; + + //If block was empty before this call, it's not already + //inserted in the block tree. + bool prev_block_was_empty = false; + typedef typename free_nodes_t::iterator free_nodes_iterator; + { + const free_nodes_iterator itbb(nodes.before_begin()), ite(nodes.end()); + free_nodes_iterator itf(nodes.begin()), itbf(itbb); + size_type splice_node_count = size_type(-1); + while(itf != ite){ + void *pElem = boost::movelib::to_raw_pointer(boost::movelib::iterator_to_raw_pointer(itf)); + block_info_t &block_info = *this->priv_block_from_node(pElem); + BOOST_ASSERT(block_info.free_nodes.size() < m_real_num_node); + ++splice_node_count; + + //If block change is detected calculate the cached block position in the tree + if(&block_info != prev_block_info){ + if(prev_block_info){ //Make sure we skip the initial "dummy" cache + free_nodes_iterator it(itbb); ++it; + nodes.erase_after(itbb, itf, splice_node_count); + prev_block_info->free_nodes.incorporate_after(prev_block_info->free_nodes.last(), &*it, &*itbf, splice_node_count); + this->priv_reinsert_block(*prev_block_info, prev_block_was_empty); + splice_node_count = 0; + } + //Update cache with new data + prev_block_was_empty = block_info.free_nodes.empty(); + prev_block_info = &block_info; + } + itbf = itf; + ++itf; + } + } + if(prev_block_info){ + //The loop reinserts all blocks except the last one + const free_nodes_iterator itfirst(nodes.begin()), itlast(nodes.last()); + const size_type splice_node_count = nodes.size(); + nodes.clear(); + prev_block_info->free_nodes.incorporate_after(prev_block_info->free_nodes.last(), &*itfirst, &*itlast, splice_node_count); + this->priv_reinsert_block(*prev_block_info, prev_block_was_empty); + this->priv_invariants(); + this->priv_deallocate_free_blocks(m_max_free_blocks); + } + } + + void deallocate_free_blocks() + { this->priv_deallocate_free_blocks(0); } + + size_type num_free_nodes() + { + typedef typename block_container_t::const_iterator citerator; + size_type count = 0; + citerator it (m_block_container.begin()), itend(m_block_container.end()); + for(; it != itend; ++it){ + count += it->free_nodes.size(); + } + return count; + } + + void swap(private_adaptive_node_pool_impl &other) + { + BOOST_ASSERT(m_max_free_blocks == other.m_max_free_blocks); + BOOST_ASSERT(m_real_node_size == other.m_real_node_size); + BOOST_ASSERT(m_real_block_alignment == other.m_real_block_alignment); + BOOST_ASSERT(m_real_num_node == other.m_real_num_node); + std::swap(mp_segment_mngr_base, other.mp_segment_mngr_base); + std::swap(m_totally_free_blocks, other.m_totally_free_blocks); + m_block_container.swap(other.m_block_container); + } + + //Deprecated, use deallocate_free_blocks + void deallocate_free_chunks() + { this->priv_deallocate_free_blocks(0); } + + private: + + void priv_deallocate_free_blocks(size_type max_free_blocks) + { //Trampoline function to ease inlining + if(m_totally_free_blocks > max_free_blocks){ + this->priv_deallocate_free_blocks_impl(max_free_blocks); + } + } + + void priv_deallocate_free_blocks_impl(size_type max_free_blocks) + { + this->priv_invariants(); + //Now check if we've reached the free nodes limit + //and check if we have free blocks. If so, deallocate as much + //as we can to stay below the limit + multiallocation_chain chain; + { + const const_block_iterator itend = m_block_container.cend(); + const_block_iterator it = itend; + --it; + size_type totally_free_blocks = m_totally_free_blocks; + + for( ; totally_free_blocks > max_free_blocks; --totally_free_blocks){ + BOOST_ASSERT(it->free_nodes.size() == m_real_num_node); + void *addr = priv_first_subblock_from_block(const_cast(&*it)); + --it; + block_container_traits_t::erase_last(m_block_container); + chain.push_front(void_pointer(addr)); + } + BOOST_ASSERT((m_totally_free_blocks - max_free_blocks) == chain.size()); + m_totally_free_blocks = max_free_blocks; + } + this->mp_segment_mngr_base->deallocate_many(chain); + } + + void priv_reinsert_block(block_info_t &prev_block_info, const bool prev_block_was_empty) + { + //Cache the free nodes from the block + const size_type this_block_free_nodes = prev_block_info.free_nodes.size(); + const bool is_full = this_block_free_nodes == m_real_num_node; + + //Update free block count + m_totally_free_blocks += static_cast(is_full); + if(prev_block_was_empty){ + block_container_traits_t::insert_was_empty(m_block_container, prev_block_info, is_full); + } + else{ + block_container_traits_t::reinsert_was_used(m_block_container, prev_block_info, is_full); + } + } + + class block_destroyer; + friend class block_destroyer; + + class block_destroyer + { + public: + block_destroyer(const this_type *impl, multiallocation_chain &chain) + : mp_impl(impl), m_chain(chain) + {} + + void operator()(typename block_container_t::pointer to_deallocate) + { return this->do_destroy(to_deallocate, IsAlignOnly()); } + + private: + void do_destroy(typename block_container_t::pointer to_deallocate, AlignOnlyTrue) + { + BOOST_ASSERT(to_deallocate->free_nodes.size() == mp_impl->m_real_num_node); + m_chain.push_back(to_deallocate); + } + + void do_destroy(typename block_container_t::pointer to_deallocate, AlignOnlyFalse) + { + BOOST_ASSERT(to_deallocate->free_nodes.size() == mp_impl->m_real_num_node); + BOOST_ASSERT(0 == to_deallocate->hdr_offset); + hdr_offset_holder *hdr_off_holder = + mp_impl->priv_first_subblock_from_block(boost::movelib::to_raw_pointer(to_deallocate)); + m_chain.push_back(hdr_off_holder); + } + + const this_type *mp_impl; + multiallocation_chain &m_chain; + }; + + //This macro will activate invariant checking. Slow, but helpful for debugging the code. + //#define BOOST_CONTAINER_ADAPTIVE_NODE_POOL_CHECK_INVARIANTS + void priv_invariants() + #ifdef BOOST_CONTAINER_ADAPTIVE_NODE_POOL_CHECK_INVARIANTS + #undef BOOST_CONTAINER_ADAPTIVE_NODE_POOL_CHECK_INVARIANTS + { + const const_block_iterator itend(m_block_container.end()); + + { //We iterate through the block tree to free the memory + const_block_iterator it(m_block_container.begin()); + + if(it != itend){ + for(++it; it != itend; ++it){ + const_block_iterator prev(it); + --prev; + BOOST_ASSERT(*prev < *it); + (void)prev; (void)it; + } + } + } + { //Check that the total free nodes are correct + const_block_iterator it(m_block_container.cbegin()); + size_type total_free_nodes = 0; + for(; it != itend; ++it){ + total_free_nodes += it->free_nodes.size(); + } + BOOST_ASSERT(total_free_nodes >= m_totally_free_blocks*m_real_num_node); + } + { //Check that the total totally free blocks are correct + BOOST_ASSERT(m_block_container.size() >= m_totally_free_blocks); + const_block_iterator it = m_block_container.cend(); + size_type total_free_blocks = m_totally_free_blocks; + while(total_free_blocks--){ + BOOST_ASSERT((--it)->free_nodes.size() == m_real_num_node); + } + } + + if(!AlignOnly){ + //Check that header offsets are correct + const_block_iterator it = m_block_container.begin(); + for(; it != itend; ++it){ + hdr_offset_holder *hdr_off_holder = this->priv_first_subblock_from_block(const_cast(&*it)); + for(size_type i = 0, max = m_num_subblocks; i < max; ++i){ + const size_type offset = reinterpret_cast(const_cast(&*it)) - reinterpret_cast(hdr_off_holder); + BOOST_ASSERT(hdr_off_holder->hdr_offset == offset); + BOOST_ASSERT(0 == ((size_type)hdr_off_holder & (m_real_block_alignment - 1))); + BOOST_ASSERT(0 == (hdr_off_holder->hdr_offset & (m_real_block_alignment - 1))); + hdr_off_holder = reinterpret_cast(reinterpret_cast(hdr_off_holder) + m_real_block_alignment); + } + } + } + } + #else + {} //empty + #endif + + //!Deallocates all used memory. Never throws + void priv_clear() + { + #ifndef NDEBUG + block_iterator it = m_block_container.begin(); + block_iterator itend = m_block_container.end(); + size_type n_free_nodes = 0; + for(; it != itend; ++it){ + //Check for memory leak + BOOST_ASSERT(it->free_nodes.size() == m_real_num_node); + ++n_free_nodes; + } + BOOST_ASSERT(n_free_nodes == m_totally_free_blocks); + #endif + //Check for memory leaks + this->priv_invariants(); + multiallocation_chain chain; + m_block_container.clear_and_dispose(block_destroyer(this, chain)); + this->mp_segment_mngr_base->deallocate_many(chain); + m_totally_free_blocks = 0; + } + + block_info_t *priv_block_from_node(void *node, AlignOnlyFalse) const + { + hdr_offset_holder *hdr_off_holder = + reinterpret_cast((std::size_t)node & size_type(~(m_real_block_alignment - 1))); + BOOST_ASSERT(0 == ((std::size_t)hdr_off_holder & (m_real_block_alignment - 1))); + BOOST_ASSERT(0 == (hdr_off_holder->hdr_offset & (m_real_block_alignment - 1))); + block_info_t *block = reinterpret_cast + (reinterpret_cast(hdr_off_holder) + hdr_off_holder->hdr_offset); + BOOST_ASSERT(block->hdr_offset == 0); + return block; + } + + block_info_t *priv_block_from_node(void *node, AlignOnlyTrue) const + { + return (block_info_t *)((std::size_t)node & std::size_t(~(m_real_block_alignment - 1))); + } + + block_info_t *priv_block_from_node(void *node) const + { return this->priv_block_from_node(node, IsAlignOnly()); } + + hdr_offset_holder *priv_first_subblock_from_block(block_info_t *block) const + { return this->priv_first_subblock_from_block(block, IsAlignOnly()); } + + hdr_offset_holder *priv_first_subblock_from_block(block_info_t *block, AlignOnlyFalse) const + { + hdr_offset_holder *const hdr_off_holder = reinterpret_cast + (reinterpret_cast(block) - (m_num_subblocks-1)*m_real_block_alignment); + BOOST_ASSERT(hdr_off_holder->hdr_offset == size_type(reinterpret_cast(block) - reinterpret_cast(hdr_off_holder))); + BOOST_ASSERT(0 == ((std::size_t)hdr_off_holder & (m_real_block_alignment - 1))); + BOOST_ASSERT(0 == (hdr_off_holder->hdr_offset & (m_real_block_alignment - 1))); + return hdr_off_holder; + } + + hdr_offset_holder *priv_first_subblock_from_block(block_info_t *block, AlignOnlyTrue) const + { + return reinterpret_cast(block); + } + + void priv_dispatch_block_chain_or_free + ( multiallocation_chain &chain, block_info_t &c_info, size_type num_node + , char *mem_address, size_type total_elements, bool insert_block_if_free) + { + BOOST_ASSERT(chain.size() <= total_elements); + //First add all possible nodes to the chain + const size_type left = total_elements - chain.size(); + const size_type max_chain = (num_node < left) ? num_node : left; + mem_address = static_cast(boost::movelib::to_raw_pointer + (chain.incorporate_after(chain.last(), void_pointer(mem_address), m_real_node_size, max_chain))); + //Now store remaining nodes in the free list + if(const size_type max_free = num_node - max_chain){ + free_nodes_t & free_nodes = c_info.free_nodes; + free_nodes.incorporate_after(free_nodes.last(), void_pointer(mem_address), m_real_node_size, max_free); + if(insert_block_if_free){ + m_block_container.push_front(c_info); + } + } + } + + //!Allocates a several blocks of nodes. Can throw + void priv_append_from_new_blocks(size_type min_elements, multiallocation_chain &chain, AlignOnlyTrue) + { + BOOST_ASSERT(m_block_container.empty()); + BOOST_ASSERT(min_elements > 0); + const size_type n = (min_elements - 1)/m_real_num_node + 1; + const size_type real_block_size = m_real_block_alignment - PayloadPerAllocation; + const size_type total_elements = chain.size() + min_elements; + for(size_type i = 0; i != n; ++i){ + //We allocate a new NodeBlock and put it the last + //element of the tree + char *mem_address = static_cast + (mp_segment_mngr_base->allocate_aligned(real_block_size, m_real_block_alignment)); + if(!mem_address){ + //In case of error, free memory deallocating all nodes (the new ones allocated + //in this function plus previously stored nodes in chain). + this->deallocate_nodes(chain); + throw_bad_alloc(); + } + block_info_t &c_info = *new(mem_address)block_info_t(); + mem_address += HdrSize; + if(i != (n-1)){ + chain.incorporate_after(chain.last(), void_pointer(mem_address), m_real_node_size, m_real_num_node); + } + else{ + this->priv_dispatch_block_chain_or_free(chain, c_info, m_real_num_node, mem_address, total_elements, true); + } + } + } + + void priv_append_from_new_blocks(size_type min_elements, multiallocation_chain &chain, AlignOnlyFalse) + { + BOOST_ASSERT(m_block_container.empty()); + BOOST_ASSERT(min_elements > 0); + const size_type n = (min_elements - 1)/m_real_num_node + 1; + const size_type real_block_size = m_real_block_alignment*m_num_subblocks - PayloadPerAllocation; + const size_type elements_per_subblock = (m_real_block_alignment - HdrOffsetSize)/m_real_node_size; + const size_type hdr_subblock_elements = (m_real_block_alignment - HdrSize - PayloadPerAllocation)/m_real_node_size; + const size_type total_elements = chain.size() + min_elements; + + for(size_type i = 0; i != n; ++i){ + //We allocate a new NodeBlock and put it the last + //element of the tree + char *mem_address = static_cast + (mp_segment_mngr_base->allocate_aligned(real_block_size, m_real_block_alignment)); + if(!mem_address){ + //In case of error, free memory deallocating all nodes (the new ones allocated + //in this function plus previously stored nodes in chain). + this->deallocate_nodes(chain); + throw_bad_alloc(); + } + //First initialize header information on the last subblock + char *hdr_addr = mem_address + m_real_block_alignment*(m_num_subblocks-1); + block_info_t &c_info = *new(hdr_addr)block_info_t(); + //Some structural checks + BOOST_ASSERT(static_cast(&static_cast(c_info).hdr_offset) == + static_cast(&c_info)); (void)c_info; + if(i != (n-1)){ + for( size_type subblock = 0, maxsubblock = m_num_subblocks - 1 + ; subblock < maxsubblock + ; ++subblock, mem_address += m_real_block_alignment){ + //Initialize header offset mark + new(mem_address) hdr_offset_holder(size_type(hdr_addr - mem_address)); + chain.incorporate_after + (chain.last(), void_pointer(mem_address + HdrOffsetSize), m_real_node_size, elements_per_subblock); + } + chain.incorporate_after(chain.last(), void_pointer(hdr_addr + HdrSize), m_real_node_size, hdr_subblock_elements); + } + else{ + for( size_type subblock = 0, maxsubblock = m_num_subblocks - 1 + ; subblock < maxsubblock + ; ++subblock, mem_address += m_real_block_alignment){ + //Initialize header offset mark + new(mem_address) hdr_offset_holder(size_type(hdr_addr - mem_address)); + this->priv_dispatch_block_chain_or_free + (chain, c_info, elements_per_subblock, mem_address + HdrOffsetSize, total_elements, false); + } + this->priv_dispatch_block_chain_or_free + (chain, c_info, hdr_subblock_elements, hdr_addr + HdrSize, total_elements, true); + } + } + } + + private: + typedef typename boost::intrusive::pointer_traits + ::template rebind_pointer::type segment_mngr_base_ptr_t; + const size_type m_max_free_blocks; + const size_type m_real_node_size; + //Round the size to a power of two value. + //This is the total memory size (including payload) that we want to + //allocate from the general-purpose allocator + const size_type m_real_block_alignment; + size_type m_num_subblocks; + //This is the real number of nodes per block + //const + size_type m_real_num_node; + segment_mngr_base_ptr_t mp_segment_mngr_base; //Segment manager + block_container_t m_block_container; //Intrusive block list + size_type m_totally_free_blocks; //Free blocks +}; + +} //namespace dtl { +} //namespace container { +} //namespace boost { + +#include + +#endif //#ifndef BOOST_CONTAINER_DETAIL_ADAPTIVE_NODE_POOL_IMPL_HPP diff --git a/libraries/boost/include/boost/container/detail/addressof.hpp b/libraries/boost/include/boost/container/detail/addressof.hpp new file mode 100644 index 0000000000..b3b8a4dd6f --- /dev/null +++ b/libraries/boost/include/boost/container/detail/addressof.hpp @@ -0,0 +1,41 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2014-2015. 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) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// +#ifndef BOOST_CONTAINER_DETAIL_ADDRESSOF_HPP +#define BOOST_CONTAINER_DETAIL_ADDRESSOF_HPP + +#ifndef BOOST_CONFIG_HPP +# include +#endif + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + +#include + +namespace boost { +namespace container { +namespace dtl { + +template +BOOST_CONTAINER_FORCEINLINE T* addressof(T& obj) +{ + return static_cast( + static_cast( + const_cast( + &reinterpret_cast(obj) + ))); +} + +} //namespace dtl { +} //namespace container { +} //namespace boost { + +#endif //#ifndef BOOST_CONTAINER_DETAIL_ADDRESSOF_HPP diff --git a/libraries/boost/include/boost/container/detail/advanced_insert_int.hpp b/libraries/boost/include/boost/container/detail/advanced_insert_int.hpp new file mode 100644 index 0000000000..d9cba4858b --- /dev/null +++ b/libraries/boost/include/boost/container/detail/advanced_insert_int.hpp @@ -0,0 +1,477 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2008-2013. 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) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// + +#ifndef BOOST_CONTAINER_ADVANCED_INSERT_INT_HPP +#define BOOST_CONTAINER_ADVANCED_INSERT_INT_HPP + +#ifndef BOOST_CONFIG_HPP +# include +#endif + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + +#include +#include + +// container +#include +// container/detail +#include +#include +#include +#include +#include +#include +#include +#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) +#include +#endif +// move +#include +// other +#include +#include + +namespace boost { namespace container { namespace dtl { + +template +struct move_insert_range_proxy +{ + typedef typename allocator_traits::size_type size_type; + typedef typename allocator_traits::value_type value_type; + + explicit move_insert_range_proxy(FwdIt first) + : first_(first) + {} + + void uninitialized_copy_n_and_update(Allocator &a, Iterator p, size_type n) + { + this->first_ = ::boost::container::uninitialized_move_alloc_n_source + (a, this->first_, n, p); + } + + void copy_n_and_update(Allocator &, Iterator p, size_type n) + { + this->first_ = ::boost::container::move_n_source(this->first_, n, p); + } + + FwdIt first_; +}; + + +template +struct insert_range_proxy +{ + typedef typename allocator_traits::size_type size_type; + typedef typename allocator_traits::value_type value_type; + + explicit insert_range_proxy(FwdIt first) + : first_(first) + {} + + void uninitialized_copy_n_and_update(Allocator &a, Iterator p, size_type n) + { + this->first_ = ::boost::container::uninitialized_copy_alloc_n_source(a, this->first_, n, p); + } + + void copy_n_and_update(Allocator &, Iterator p, size_type n) + { + this->first_ = ::boost::container::copy_n_source(this->first_, n, p); + } + + FwdIt first_; +}; + + +template +struct insert_n_copies_proxy +{ + typedef typename allocator_traits::size_type size_type; + typedef typename allocator_traits::value_type value_type; + + explicit insert_n_copies_proxy(const value_type &v) + : v_(v) + {} + + void uninitialized_copy_n_and_update(Allocator &a, Iterator p, size_type n) const + { boost::container::uninitialized_fill_alloc_n(a, v_, n, p); } + + void copy_n_and_update(Allocator &, Iterator p, size_type n) const + { + for (; 0 < n; --n, ++p){ + *p = v_; + } + } + + const value_type &v_; +}; + +template +struct insert_value_initialized_n_proxy +{ + typedef ::boost::container::allocator_traits alloc_traits; + typedef typename allocator_traits::size_type size_type; + typedef typename allocator_traits::value_type value_type; + + void uninitialized_copy_n_and_update(Allocator &a, Iterator p, size_type n) const + { boost::container::uninitialized_value_init_alloc_n(a, n, p); } + + void copy_n_and_update(Allocator &, Iterator, size_type) const + { BOOST_ASSERT(false); } +}; + +template +struct insert_default_initialized_n_proxy +{ + typedef ::boost::container::allocator_traits alloc_traits; + typedef typename allocator_traits::size_type size_type; + typedef typename allocator_traits::value_type value_type; + + void uninitialized_copy_n_and_update(Allocator &a, Iterator p, size_type n) const + { boost::container::uninitialized_default_init_alloc_n(a, n, p); } + + void copy_n_and_update(Allocator &, Iterator, size_type) const + { BOOST_ASSERT(false); } +}; + +template +struct insert_copy_proxy +{ + typedef boost::container::allocator_traits alloc_traits; + typedef typename alloc_traits::size_type size_type; + typedef typename alloc_traits::value_type value_type; + + explicit insert_copy_proxy(const value_type &v) + : v_(v) + {} + + void uninitialized_copy_n_and_update(Allocator &a, Iterator p, size_type n) const + { + BOOST_ASSERT(n == 1); (void)n; + alloc_traits::construct( a, boost::movelib::iterator_to_raw_pointer(p), v_); + } + + void copy_n_and_update(Allocator &, Iterator p, size_type n) const + { + BOOST_ASSERT(n == 1); (void)n; + *p = v_; + } + + const value_type &v_; +}; + + +template +struct insert_move_proxy +{ + typedef boost::container::allocator_traits alloc_traits; + typedef typename alloc_traits::size_type size_type; + typedef typename alloc_traits::value_type value_type; + + explicit insert_move_proxy(value_type &v) + : v_(v) + {} + + void uninitialized_copy_n_and_update(Allocator &a, Iterator p, size_type n) const + { + BOOST_ASSERT(n == 1); (void)n; + alloc_traits::construct( a, boost::movelib::iterator_to_raw_pointer(p), ::boost::move(v_) ); + } + + void copy_n_and_update(Allocator &, Iterator p, size_type n) const + { + BOOST_ASSERT(n == 1); (void)n; + *p = ::boost::move(v_); + } + + value_type &v_; +}; + +template +insert_move_proxy get_insert_value_proxy(BOOST_RV_REF(typename boost::container::iterator_traits::value_type) v) +{ + return insert_move_proxy(v); +} + +template +insert_copy_proxy get_insert_value_proxy(const typename boost::container::iterator_traits::value_type &v) +{ + return insert_copy_proxy(v); +} + +}}} //namespace boost { namespace container { namespace dtl { + +#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) + +#include +#include + +namespace boost { +namespace container { +namespace dtl { + +template +struct insert_nonmovable_emplace_proxy +{ + typedef boost::container::allocator_traits alloc_traits; + typedef typename alloc_traits::size_type size_type; + typedef typename alloc_traits::value_type value_type; + + typedef typename build_number_seq::type index_tuple_t; + + explicit insert_nonmovable_emplace_proxy(BOOST_FWD_REF(Args)... args) + : args_(args...) + {} + + void uninitialized_copy_n_and_update(Allocator &a, Iterator p, size_type n) + { this->priv_uninitialized_copy_some_and_update(a, index_tuple_t(), p, n); } + + private: + template + void priv_uninitialized_copy_some_and_update(Allocator &a, const index_tuple&, Iterator p, size_type n) + { + BOOST_ASSERT(n == 1); (void)n; + alloc_traits::construct( a, boost::movelib::iterator_to_raw_pointer(p), ::boost::forward(get(this->args_))... ); + } + + protected: + tuple args_; +}; + +template +struct insert_emplace_proxy + : public insert_nonmovable_emplace_proxy +{ + typedef insert_nonmovable_emplace_proxy base_t; + typedef boost::container::allocator_traits alloc_traits; + typedef typename base_t::value_type value_type; + typedef typename base_t::size_type size_type; + typedef typename base_t::index_tuple_t index_tuple_t; + + explicit insert_emplace_proxy(BOOST_FWD_REF(Args)... args) + : base_t(::boost::forward(args)...) + {} + + void copy_n_and_update(Allocator &a, Iterator p, size_type n) + { this->priv_copy_some_and_update(a, index_tuple_t(), p, n); } + + private: + + template + void priv_copy_some_and_update(Allocator &a, const index_tuple&, Iterator p, size_type n) + { + BOOST_ASSERT(n ==1); (void)n; + typename aligned_storage::value>::type v; + value_type *vp = static_cast(static_cast(v.data)); + alloc_traits::construct(a, vp, + ::boost::forward(get(this->args_))...); + BOOST_TRY{ + *p = ::boost::move(*vp); + } + BOOST_CATCH(...){ + alloc_traits::destroy(a, vp); + BOOST_RETHROW + } + BOOST_CATCH_END + alloc_traits::destroy(a, vp); + } +}; + +//Specializations to avoid an unneeded temporary when emplacing from a single argument o type value_type +template +struct insert_emplace_proxy::value_type> + : public insert_move_proxy +{ + explicit insert_emplace_proxy(typename boost::container::allocator_traits::value_type &&v) + : insert_move_proxy(v) + {} +}; + +//We use "add_const" here as adding "const" only confuses MSVC12(and maybe later) provoking +//compiler error C2752 ("more than one partial specialization matches"). +//Any problem is solvable with an extra layer of indirection? ;-) +template +struct insert_emplace_proxy::value_type>::type + > + : public insert_copy_proxy +{ + explicit insert_emplace_proxy(const typename boost::container::allocator_traits::value_type &v) + : insert_copy_proxy(v) + {} +}; + +template +struct insert_emplace_proxy::value_type &> + : public insert_copy_proxy +{ + explicit insert_emplace_proxy(const typename boost::container::allocator_traits::value_type &v) + : insert_copy_proxy(v) + {} +}; + +template +struct insert_emplace_proxy::value_type>::type & + > + : public insert_copy_proxy +{ + explicit insert_emplace_proxy(const typename boost::container::allocator_traits::value_type &v) + : insert_copy_proxy(v) + {} +}; + +}}} //namespace boost { namespace container { namespace dtl { + +#else // !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) + +#include + +namespace boost { +namespace container { +namespace dtl { + +#define BOOST_CONTAINER_ADVANCED_INSERT_INT_CODE(N) \ +template< class Allocator, class Iterator BOOST_MOVE_I##N BOOST_MOVE_CLASS##N >\ +struct insert_nonmovable_emplace_proxy##N\ +{\ + typedef boost::container::allocator_traits alloc_traits;\ + typedef typename alloc_traits::size_type size_type;\ + typedef typename alloc_traits::value_type value_type;\ + \ + explicit insert_nonmovable_emplace_proxy##N(BOOST_MOVE_UREF##N)\ + BOOST_MOVE_COLON##N BOOST_MOVE_FWD_INIT##N {}\ + \ + void uninitialized_copy_n_and_update(Allocator &a, Iterator p, size_type n)\ + {\ + BOOST_ASSERT(n == 1); (void)n;\ + alloc_traits::construct(a, boost::movelib::iterator_to_raw_pointer(p) BOOST_MOVE_I##N BOOST_MOVE_MFWD##N);\ + }\ + \ + void copy_n_and_update(Allocator &, Iterator, size_type)\ + { BOOST_ASSERT(false); }\ + \ + protected:\ + BOOST_MOVE_MREF##N\ +};\ +\ +template< class Allocator, class Iterator BOOST_MOVE_I##N BOOST_MOVE_CLASS##N >\ +struct insert_emplace_proxy_arg##N\ + : insert_nonmovable_emplace_proxy##N< Allocator, Iterator BOOST_MOVE_I##N BOOST_MOVE_TARG##N >\ +{\ + typedef insert_nonmovable_emplace_proxy##N\ + < Allocator, Iterator BOOST_MOVE_I##N BOOST_MOVE_TARG##N > base_t;\ + typedef typename base_t::value_type value_type;\ + typedef typename base_t::size_type size_type;\ + typedef boost::container::allocator_traits alloc_traits;\ + \ + explicit insert_emplace_proxy_arg##N(BOOST_MOVE_UREF##N)\ + : base_t(BOOST_MOVE_FWD##N){}\ + \ + void copy_n_and_update(Allocator &a, Iterator p, size_type n)\ + {\ + BOOST_ASSERT(n == 1); (void)n;\ + typename aligned_storage::value>::type v;\ + BOOST_ASSERT((((size_type)(&v)) % alignment_of::value) == 0);\ + value_type *vp = static_cast(static_cast(v.data));\ + alloc_traits::construct(a, vp BOOST_MOVE_I##N BOOST_MOVE_MFWD##N);\ + BOOST_TRY{\ + *p = ::boost::move(*vp);\ + }\ + BOOST_CATCH(...){\ + alloc_traits::destroy(a, vp);\ + BOOST_RETHROW\ + }\ + BOOST_CATCH_END\ + alloc_traits::destroy(a, vp);\ + }\ +};\ +// +BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_ADVANCED_INSERT_INT_CODE) +#undef BOOST_CONTAINER_ADVANCED_INSERT_INT_CODE + +#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + +//Specializations to avoid an unneeded temporary when emplacing from a single argument o type value_type +template +struct insert_emplace_proxy_arg1::value_type> > + : public insert_move_proxy +{ + explicit insert_emplace_proxy_arg1(typename boost::container::allocator_traits::value_type &v) + : insert_move_proxy(v) + {} +}; + +template +struct insert_emplace_proxy_arg1::value_type> + : public insert_copy_proxy +{ + explicit insert_emplace_proxy_arg1(const typename boost::container::allocator_traits::value_type &v) + : insert_copy_proxy(v) + {} +}; + +#else //e.g. MSVC10 & MSVC11 + +//Specializations to avoid an unneeded temporary when emplacing from a single argument o type value_type +template +struct insert_emplace_proxy_arg1::value_type> + : public insert_move_proxy +{ + explicit insert_emplace_proxy_arg1(typename boost::container::allocator_traits::value_type &&v) + : insert_move_proxy(v) + {} +}; + +//We use "add_const" here as adding "const" only confuses MSVC10&11 provoking +//compiler error C2752 ("more than one partial specialization matches"). +//Any problem is solvable with an extra layer of indirection? ;-) +template +struct insert_emplace_proxy_arg1::value_type>::type + > + : public insert_copy_proxy +{ + explicit insert_emplace_proxy_arg1(const typename boost::container::allocator_traits::value_type &v) + : insert_copy_proxy(v) + {} +}; + +template +struct insert_emplace_proxy_arg1::value_type &> + : public insert_copy_proxy +{ + explicit insert_emplace_proxy_arg1(const typename boost::container::allocator_traits::value_type &v) + : insert_copy_proxy(v) + {} +}; + +template +struct insert_emplace_proxy_arg1::value_type>::type & + > + : public insert_copy_proxy +{ + explicit insert_emplace_proxy_arg1(const typename boost::container::allocator_traits::value_type &v) + : insert_copy_proxy(v) + {} +}; + +#endif + +}}} //namespace boost { namespace container { namespace dtl { + +#endif // !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) + +#include + +#endif //#ifndef BOOST_CONTAINER_ADVANCED_INSERT_INT_HPP diff --git a/libraries/boost/include/boost/container/detail/algorithm.hpp b/libraries/boost/include/boost/container/detail/algorithm.hpp new file mode 100644 index 0000000000..11844220e1 --- /dev/null +++ b/libraries/boost/include/boost/container/detail/algorithm.hpp @@ -0,0 +1,157 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2014-2014. +// +// 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) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// + +#ifndef BOOST_CONTAINER_DETAIL_ALGORITHM_HPP +#define BOOST_CONTAINER_DETAIL_ALGORITHM_HPP + +#ifndef BOOST_CONFIG_HPP +# include +#endif + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + +#include + +namespace boost { +namespace container { + +using boost::intrusive::algo_equal; +using boost::intrusive::algo_lexicographical_compare; + +template +class binder1st +{ + public: + typedef typename Func::second_argument_type argument_type; + typedef typename Func::result_type result_type; + + binder1st(const Func& func, const typename Func::first_argument_type& arg) + : op(func), value(arg) + {} + + result_type operator()(const argument_type& arg) const + { return op(value, arg); } + + result_type operator()(argument_type& arg) const + { return op(value, arg); } + + private: + Func op; + typename Func::first_argument_type value; +}; + +template +inline binder1st bind1st(const Func& func, const T& arg) +{ return boost::container::binder1st(func, arg); } + +template +class binder2nd +{ + public: + typedef typename Func::first_argument_type argument_type; + typedef typename Func::result_type result_type; + + binder2nd(const Func& func, const typename Func::second_argument_type& arg) + : op(func), value(arg) + {} + + result_type operator()(const argument_type& arg) const + { return op(arg, value); } + + result_type operator()(argument_type& arg) const + { return op(arg, value); } + + private: + Func op; + typename Func::second_argument_type value; +}; + +template +inline binder2nd bind2nd(const Func& func, const T& arg) +{ + return (boost::container::binder2nd(func, arg)); +} + +template +class unary_negate +{ + public: + typedef typename Func::argument_type argument_type; + typedef typename Func::result_type result_type; + + explicit unary_negate(const Func& func) + : m_func(func) + {} + + bool operator()(const typename Func::argument_type& arg) const + { return !m_func(arg); } + + private: + Func m_func; +}; + +template inline +unary_negate not1(const Func& func) +{ + return boost::container::unary_negate(func); +} + +template +InputIt find_if(InputIt first, InputIt last, UnaryPredicate p) +{ + for (; first != last; ++first) { + if (p(*first)) { + return first; + } + } + return last; +} + +template +InputIt find_first_of(InputIt first1, InputIt last1, ForwardIt first2, ForwardIt last2, BinaryPredicate p) +{ + for (; first1 != last1; ++first1) { + for (ForwardIt it = first2; it != last2; ++it) { + if (p(*first1, *it)) { + return first1; + } + } + } + return last1; +} + +template +ForwardIt1 search(ForwardIt1 first1, ForwardIt1 last1, + ForwardIt2 first2, ForwardIt2 last2, BinaryPredicate p) +{ + for (; ; ++first1) { + ForwardIt1 it = first1; + for (ForwardIt2 it2 = first2; ; ++it, ++it2) { + if (it2 == last2) { + return first1; + } + if (it == last1) { + return last1; + } + if (!p(*it, *it2)) { + break; + } + } + } +} + +} //namespace container { +} //namespace boost { + +#endif //#ifndef BOOST_CONTAINER_DETAIL_ALGORITHM_HPP diff --git a/libraries/boost/include/boost/container/detail/alloc_helpers.hpp b/libraries/boost/include/boost/container/detail/alloc_helpers.hpp new file mode 100644 index 0000000000..57c59e46c1 --- /dev/null +++ b/libraries/boost/include/boost/container/detail/alloc_helpers.hpp @@ -0,0 +1,60 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2014-2015. 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) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// +#ifndef BOOST_CONTAINER_DETAIL_ALLOC_TRAITS_HPP +#define BOOST_CONTAINER_DETAIL_ALLOC_TRAITS_HPP + +#ifndef BOOST_CONFIG_HPP +# include +#endif + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + +// move +#include +#include + +namespace boost { +namespace container { +namespace dtl { + +template +inline void swap_alloc(AllocatorType &, AllocatorType &, dtl::false_type) + BOOST_NOEXCEPT_OR_NOTHROW +{} + +template +inline void swap_alloc(AllocatorType &l, AllocatorType &r, dtl::true_type) +{ boost::adl_move_swap(l, r); } + +template +inline void assign_alloc(AllocatorType &, const AllocatorType &, dtl::false_type) + BOOST_NOEXCEPT_OR_NOTHROW +{} + +template +inline void assign_alloc(AllocatorType &l, const AllocatorType &r, dtl::true_type) +{ l = r; } + +template +inline void move_alloc(AllocatorType &, AllocatorType &, dtl::false_type) + BOOST_NOEXCEPT_OR_NOTHROW +{} + +template +inline void move_alloc(AllocatorType &l, AllocatorType &r, dtl::true_type) +{ l = ::boost::move(r); } + +} //namespace dtl { +} //namespace container { +} //namespace boost { + +#endif //#ifndef BOOST_CONTAINER_DETAIL_ALLOC_TRAITS_HPP diff --git a/libraries/boost/include/boost/container/detail/alloc_lib.h b/libraries/boost/include/boost/container/detail/alloc_lib.h new file mode 100644 index 0000000000..950ff722a5 --- /dev/null +++ b/libraries/boost/include/boost/container/detail/alloc_lib.h @@ -0,0 +1,314 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2005-2013. 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) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// +#ifndef BOOST_CONTAINER_ALLOC_LIB_EXT_H +#define BOOST_CONTAINER_ALLOC_LIB_EXT_H + +#include + +#ifdef _MSC_VER +#pragma warning (push) +#pragma warning (disable : 4127) +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/*!An forward iterator to traverse the elements of a memory chain container.*/ +typedef struct multialloc_node_impl +{ + struct multialloc_node_impl *next_node_ptr; +} boost_cont_memchain_node; + + +/*!An forward iterator to traverse the elements of a memory chain container.*/ +typedef struct multialloc_it_impl +{ + boost_cont_memchain_node *node_ptr; +} boost_cont_memchain_it; + +/*!Memory chain: A container holding memory portions allocated by boost_cont_multialloc_nodes + and boost_cont_multialloc_arrays functions.*/ +typedef struct boost_cont_memchain_impl +{ + size_t num_mem; + boost_cont_memchain_node root_node; + boost_cont_memchain_node *last_node_ptr; +} boost_cont_memchain; + +/*!Advances the iterator one position so that it points to the next element in the memory chain*/ +#define BOOST_CONTAINER_MEMIT_NEXT(IT) (IT.node_ptr = IT.node_ptr->next_node_ptr) + +/*!Returns the address of the memory chain currently pointed by the iterator*/ +#define BOOST_CONTAINER_MEMIT_ADDR(IT) ((void*)IT.node_ptr) + +/*!Initializer for an iterator pointing to the position before the first element*/ +#define BOOST_CONTAINER_MEMCHAIN_BEFORE_BEGIN_IT(PMEMCHAIN) { &((PMEMCHAIN)->root_node) } + +/*!Initializer for an iterator pointing to the first element*/ +#define BOOST_CONTAINER_MEMCHAIN_BEGIN_IT(PMEMCHAIN) {(PMEMCHAIN)->root_node.next_node_ptr } + +/*!Initializer for an iterator pointing to the last element*/ +#define BOOST_CONTAINER_MEMCHAIN_LAST_IT(PMEMCHAIN) {(PMEMCHAIN)->last_node_ptr } + +/*!Initializer for an iterator pointing to one past the last element (end iterator)*/ +#define BOOST_CONTAINER_MEMCHAIN_END_IT(PMEMCHAIN) {(boost_cont_memchain_node *)0 } + +/*!True if IT is the end iterator, false otherwise*/ +#define BOOST_CONTAINER_MEMCHAIN_IS_END_IT(PMEMCHAIN, IT) (!(IT).node_ptr) + +/*!The address of the first memory portion hold by the memory chain*/ +#define BOOST_CONTAINER_MEMCHAIN_FIRSTMEM(PMEMCHAIN)((void*)((PMEMCHAIN)->root_node.next_node_ptr)) + +/*!The address of the last memory portion hold by the memory chain*/ +#define BOOST_CONTAINER_MEMCHAIN_LASTMEM(PMEMCHAIN) ((void*)((PMEMCHAIN)->last_node_ptr)) + +/*!The number of memory portions hold by the memory chain*/ +#define BOOST_CONTAINER_MEMCHAIN_SIZE(PMEMCHAIN) ((PMEMCHAIN)->num_mem) + +/*!Initializes the memory chain from the first memory portion, the last memory + portion and number of portions obtained from another memory chain*/ +#define BOOST_CONTAINER_MEMCHAIN_INIT_FROM(PMEMCHAIN, FIRST, LAST, NUM)\ + (PMEMCHAIN)->last_node_ptr = (boost_cont_memchain_node *)(LAST), \ + (PMEMCHAIN)->root_node.next_node_ptr = (boost_cont_memchain_node *)(FIRST), \ + (PMEMCHAIN)->num_mem = (NUM);\ +/**/ + +/*!Default initializes a memory chain. Postconditions: begin iterator is end iterator, + the number of portions is zero.*/ +#define BOOST_CONTAINER_MEMCHAIN_INIT(PMEMCHAIN)\ + ((PMEMCHAIN)->root_node.next_node_ptr = 0, (PMEMCHAIN)->last_node_ptr = &((PMEMCHAIN)->root_node), (PMEMCHAIN)->num_mem = 0)\ +/**/ + +/*!True if the memory chain is empty (holds no memory portions*/ +#define BOOST_CONTAINER_MEMCHAIN_EMPTY(PMEMCHAIN)\ + ((PMEMCHAIN)->num_mem == 0)\ +/**/ + +/*!Inserts a new memory portions in the front of the chain*/ +#define BOOST_CONTAINER_MEMCHAIN_PUSH_BACK(PMEMCHAIN, MEM)\ + do{\ + boost_cont_memchain *____chain____ = (PMEMCHAIN);\ + boost_cont_memchain_node *____tmp_mem____ = (boost_cont_memchain_node *)(MEM);\ + ____chain____->last_node_ptr->next_node_ptr = ____tmp_mem____;\ + ____tmp_mem____->next_node_ptr = 0;\ + ____chain____->last_node_ptr = ____tmp_mem____;\ + ++____chain____->num_mem;\ + }while(0)\ +/**/ + +/*!Inserts a new memory portions in the back of the chain*/ +#define BOOST_CONTAINER_MEMCHAIN_PUSH_FRONT(PMEMCHAIN, MEM)\ + do{\ + boost_cont_memchain *____chain____ = (PMEMCHAIN);\ + boost_cont_memchain_node *____tmp_mem____ = (boost_cont_memchain_node *)(MEM);\ + boost_cont_memchain *____root____ = &((PMEMCHAIN)->root_node);\ + if(!____chain____->root_node.next_node_ptr){\ + ____chain____->last_node_ptr = ____tmp_mem____;\ + }\ + boost_cont_memchain_node *____old_first____ = ____root____->next_node_ptr;\ + ____tmp_mem____->next_node_ptr = ____old_first____;\ + ____root____->next_node_ptr = ____tmp_mem____;\ + ++____chain____->num_mem;\ + }while(0)\ +/**/ + +/*!Erases the memory portion after the portion pointed by BEFORE_IT from the memory chain*/ +/*!Precondition: BEFORE_IT must be a valid iterator of the memory chain and it can't be the end iterator*/ +#define BOOST_CONTAINER_MEMCHAIN_ERASE_AFTER(PMEMCHAIN, BEFORE_IT)\ + do{\ + boost_cont_memchain *____chain____ = (PMEMCHAIN);\ + boost_cont_memchain_node *____prev_node____ = (BEFORE_IT).node_ptr;\ + boost_cont_memchain_node *____erase_node____ = ____prev_node____->next_node_ptr;\ + if(____chain____->last_node_ptr == ____erase_node____){\ + ____chain____->last_node_ptr = &____chain____->root_node;\ + }\ + ____prev_node____->next_node_ptr = ____erase_node____->next_node_ptr;\ + --____chain____->num_mem;\ + }while(0)\ +/**/ + +/*!Erases the first portion from the memory chain. + Precondition: the memory chain must not be empty*/ +#define BOOST_CONTAINER_MEMCHAIN_POP_FRONT(PMEMCHAIN)\ + do{\ + boost_cont_memchain *____chain____ = (PMEMCHAIN);\ + boost_cont_memchain_node *____prev_node____ = &____chain____->root_node;\ + boost_cont_memchain_node *____erase_node____ = ____prev_node____->next_node_ptr;\ + if(____chain____->last_node_ptr == ____erase_node____){\ + ____chain____->last_node_ptr = &____chain____->root_node;\ + }\ + ____prev_node____->next_node_ptr = ____erase_node____->next_node_ptr;\ + --____chain____->num_mem;\ + }while(0)\ +/**/ + +/*!Joins two memory chains inserting the portions of the second chain at the back of the first chain*/ +/* +#define BOOST_CONTAINER_MEMCHAIN_SPLICE_BACK(PMEMCHAIN, PMEMCHAIN2)\ + do{\ + boost_cont_memchain *____chain____ = (PMEMCHAIN);\ + boost_cont_memchain *____chain2____ = (PMEMCHAIN2);\ + if(!____chain2____->root_node.next_node_ptr){\ + break;\ + }\ + else if(!____chain____->first_mem){\ + ____chain____->first_mem = ____chain2____->first_mem;\ + ____chain____->last_node_ptr = ____chain2____->last_node_ptr;\ + ____chain____->num_mem = ____chain2____->num_mem;\ + BOOST_CONTAINER_MEMCHAIN_INIT(*____chain2____);\ + }\ + else{\ + ____chain____->last_node_ptr->next_node_ptr = ____chain2____->first_mem;\ + ____chain____->last_node_ptr = ____chain2____->last_node_ptr;\ + ____chain____->num_mem += ____chain2____->num_mem;\ + }\ + }while(0)\*/ +/**/ + +/*!Joins two memory chains inserting the portions of the second chain at the back of the first chain*/ +#define BOOST_CONTAINER_MEMCHAIN_INCORPORATE_AFTER(PMEMCHAIN, BEFORE_IT, FIRST, BEFORELAST, NUM)\ + do{\ + boost_cont_memchain *____chain____ = (PMEMCHAIN);\ + boost_cont_memchain_node *____pnode____ = (BEFORE_IT).node_ptr;\ + boost_cont_memchain_node *____next____ = ____pnode____->next_node_ptr;\ + boost_cont_memchain_node *____first____ = (boost_cont_memchain_node *)(FIRST);\ + boost_cont_memchain_node *____blast____ = (boost_cont_memchain_node *)(BEFORELAST);\ + size_t ____num____ = (NUM);\ + if(!____num____){\ + break;\ + }\ + if(____pnode____ == ____chain____->last_node_ptr){\ + ____chain____->last_node_ptr = ____blast____;\ + }\ + ____pnode____->next_node_ptr = ____first____;\ + ____blast____->next_node_ptr = ____next____;\ + ____chain____->num_mem += ____num____;\ + }while(0)\ +/**/ + +/*!Indicates the all elements allocated by boost_cont_multialloc_nodes or boost_cont_multialloc_arrays + must be contiguous.*/ +#define DL_MULTIALLOC_ALL_CONTIGUOUS ((size_t)(-1)) + +/*!Indicates the number of contiguous elements allocated by boost_cont_multialloc_nodes or boost_cont_multialloc_arrays + should be selected by those functions.*/ +#define DL_MULTIALLOC_DEFAULT_CONTIGUOUS ((size_t)(0)) + +typedef struct boost_cont_malloc_stats_impl +{ + size_t max_system_bytes; + size_t system_bytes; + size_t in_use_bytes; +} boost_cont_malloc_stats_t; + +typedef unsigned int allocation_type; + +enum +{ + // constants for allocation commands + BOOST_CONTAINER_ALLOCATE_NEW = 0X01, + BOOST_CONTAINER_EXPAND_FWD = 0X02, + BOOST_CONTAINER_EXPAND_BWD = 0X04, + BOOST_CONTAINER_SHRINK_IN_PLACE = 0X08, + BOOST_CONTAINER_NOTHROW_ALLOCATION = 0X10, +// BOOST_CONTAINER_ZERO_MEMORY = 0X20, + BOOST_CONTAINER_TRY_SHRINK_IN_PLACE = 0X40, + BOOST_CONTAINER_EXPAND_BOTH = BOOST_CONTAINER_EXPAND_FWD | BOOST_CONTAINER_EXPAND_BWD, + BOOST_CONTAINER_EXPAND_OR_NEW = BOOST_CONTAINER_ALLOCATE_NEW | BOOST_CONTAINER_EXPAND_BOTH +}; + +//#define BOOST_CONTAINERDLMALLOC__FOOTERS +#ifndef BOOST_CONTAINERDLMALLOC__FOOTERS +enum { BOOST_CONTAINER_ALLOCATION_PAYLOAD = sizeof(size_t) }; +#else +enum { BOOST_CONTAINER_ALLOCATION_PAYLOAD = sizeof(size_t)*2 }; +#endif + +typedef struct boost_cont_command_ret_impl +{ + void *first; + int second; +}boost_cont_command_ret_t; + +size_t boost_cont_size(const void *p); + +void* boost_cont_malloc(size_t bytes); + +void boost_cont_free(void* mem); + +void* boost_cont_memalign(size_t bytes, size_t alignment); + +int boost_cont_multialloc_nodes + (size_t n_elements, size_t elem_size, size_t contiguous_elements, boost_cont_memchain *pchain); + +int boost_cont_multialloc_arrays + (size_t n_elements, const size_t *sizes, size_t sizeof_element, size_t contiguous_elements, boost_cont_memchain *pchain); + +void boost_cont_multidealloc(boost_cont_memchain *pchain); + +size_t boost_cont_footprint(); + +size_t boost_cont_allocated_memory(); + +size_t boost_cont_chunksize(const void *p); + +int boost_cont_all_deallocated(); + +boost_cont_malloc_stats_t boost_cont_malloc_stats(); + +size_t boost_cont_in_use_memory(); + +int boost_cont_trim(size_t pad); + +int boost_cont_mallopt(int parameter_number, int parameter_value); + +int boost_cont_grow + (void* oldmem, size_t minbytes, size_t maxbytes, size_t *received); + +int boost_cont_shrink + (void* oldmem, size_t minbytes, size_t maxbytes, size_t *received, int do_commit); + +void* boost_cont_alloc + (size_t minbytes, size_t preferred_bytes, size_t *received_bytes); + +int boost_cont_malloc_check(); + +boost_cont_command_ret_t boost_cont_allocation_command + ( allocation_type command + , size_t sizeof_object + , size_t limit_objects + , size_t preferred_objects + , size_t *received_objects + , void *reuse_ptr + ); + +void *boost_cont_sync_create(); + +void boost_cont_sync_destroy(void *sync); + +int boost_cont_sync_lock(void *sync); + +void boost_cont_sync_unlock(void *sync); + +int boost_cont_global_sync_lock(); + +void boost_cont_global_sync_unlock(); + +#ifdef __cplusplus +} //extern "C" { +#endif + +#ifdef _MSC_VER +#pragma warning (pop) +#endif + + +#endif //#define BOOST_CONTAINERDLMALLOC__EXT_H diff --git a/libraries/boost/include/boost/container/detail/allocation_type.hpp b/libraries/boost/include/boost/container/detail/allocation_type.hpp new file mode 100644 index 0000000000..1e8aa67310 --- /dev/null +++ b/libraries/boost/include/boost/container/detail/allocation_type.hpp @@ -0,0 +1,58 @@ +/////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2005-2013. 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) +// +// See http://www.boost.org/libs/container for documentation. +// +/////////////////////////////////////////////////////////////////////////////// + +#ifndef BOOST_CONTAINER_ALLOCATION_TYPE_HPP +#define BOOST_CONTAINER_ALLOCATION_TYPE_HPP + +#ifndef BOOST_CONFIG_HPP +# include +#endif + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + +#include +#include + +namespace boost { +namespace container { + +#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED +enum allocation_type_v +{ + // constants for allocation commands + allocate_new_v = 0x01, + expand_fwd_v = 0x02, + expand_bwd_v = 0x04, +// expand_both = expand_fwd | expand_bwd, +// expand_or_new = allocate_new | expand_both, + shrink_in_place_v = 0x08, + nothrow_allocation_v = 0x10, + zero_memory_v = 0x20, + try_shrink_in_place_v = 0x40 +}; + +typedef unsigned int allocation_type; +#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED +static const allocation_type allocate_new = (allocation_type)allocate_new_v; +static const allocation_type expand_fwd = (allocation_type)expand_fwd_v; +static const allocation_type expand_bwd = (allocation_type)expand_bwd_v; +static const allocation_type shrink_in_place = (allocation_type)shrink_in_place_v; +static const allocation_type try_shrink_in_place= (allocation_type)try_shrink_in_place_v; +static const allocation_type nothrow_allocation = (allocation_type)nothrow_allocation_v; +static const allocation_type zero_memory = (allocation_type)zero_memory_v; + +} //namespace container { +} //namespace boost { + +#include + +#endif //BOOST_CONTAINER_ALLOCATION_TYPE_HPP diff --git a/libraries/boost/include/boost/container/detail/allocator_version_traits.hpp b/libraries/boost/include/boost/container/detail/allocator_version_traits.hpp new file mode 100644 index 0000000000..18460bdf08 --- /dev/null +++ b/libraries/boost/include/boost/container/detail/allocator_version_traits.hpp @@ -0,0 +1,162 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2012-2013. 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) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// + +#ifndef BOOST_CONTAINER_DETAIL_ALLOCATOR_VERSION_TRAITS_HPP +#define BOOST_CONTAINER_DETAIL_ALLOCATOR_VERSION_TRAITS_HPP + +#ifndef BOOST_CONFIG_HPP +# include +#endif + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + +#include +#include + +#include //allocator_traits +#include +#include //multiallocation_chain +#include //version_type +#include //allocation_type +#include //integral_constant +#include //pointer_traits +#include //BOOST_TRY + +namespace boost { +namespace container { +namespace dtl { + +template::value> +struct allocator_version_traits +{ + typedef ::boost::container::dtl::integral_constant + alloc_version; + + typedef typename Allocator::multiallocation_chain multiallocation_chain; + + typedef typename boost::container::allocator_traits::pointer pointer; + typedef typename boost::container::allocator_traits::size_type size_type; + + //Node allocation interface + static pointer allocate_one(Allocator &a) + { return a.allocate_one(); } + + static void deallocate_one(Allocator &a, const pointer &p) + { a.deallocate_one(p); } + + static void allocate_individual(Allocator &a, size_type n, multiallocation_chain &m) + { return a.allocate_individual(n, m); } + + static void deallocate_individual(Allocator &a, multiallocation_chain &holder) + { a.deallocate_individual(holder); } + + static pointer allocation_command(Allocator &a, allocation_type command, + size_type limit_size, size_type &prefer_in_recvd_out_size, pointer &reuse) + { return a.allocation_command(command, limit_size, prefer_in_recvd_out_size, reuse); } +}; + +template +struct allocator_version_traits +{ + typedef ::boost::container::dtl::integral_constant + alloc_version; + + typedef typename boost::container::allocator_traits::pointer pointer; + typedef typename boost::container::allocator_traits::size_type size_type; + typedef typename boost::container::allocator_traits::value_type value_type; + + typedef typename boost::intrusive::pointer_traits:: + template rebind_pointer::type void_ptr; + typedef dtl::basic_multiallocation_chain + multialloc_cached_counted; + typedef boost::container::dtl:: + transform_multiallocation_chain + < multialloc_cached_counted, value_type> multiallocation_chain; + + //Node allocation interface + static pointer allocate_one(Allocator &a) + { return a.allocate(1); } + + static void deallocate_one(Allocator &a, const pointer &p) + { a.deallocate(p, 1); } + + static void deallocate_individual(Allocator &a, multiallocation_chain &holder) + { + size_type n = holder.size(); + typename multiallocation_chain::iterator it = holder.begin(); + while(n--){ + pointer p = boost::intrusive::pointer_traits::pointer_to(*it); + ++it; + a.deallocate(p, 1); + } + } + + struct allocate_individual_rollback + { + allocate_individual_rollback(Allocator &a, multiallocation_chain &chain) + : mr_a(a), mp_chain(&chain) + {} + + ~allocate_individual_rollback() + { + if(mp_chain) + allocator_version_traits::deallocate_individual(mr_a, *mp_chain); + } + + void release() + { + mp_chain = 0; + } + + Allocator &mr_a; + multiallocation_chain * mp_chain; + }; + + static void allocate_individual(Allocator &a, size_type n, multiallocation_chain &m) + { + allocate_individual_rollback rollback(a, m); + while(n--){ + m.push_front(a.allocate(1)); + } + rollback.release(); + } + + static pointer allocation_command(Allocator &a, allocation_type command, + size_type, size_type &prefer_in_recvd_out_size, pointer &reuse) + { + pointer ret = pointer(); + if(BOOST_UNLIKELY(!(command & allocate_new) && !(command & nothrow_allocation))){ + throw_logic_error("version 1 allocator without allocate_new flag"); + } + else{ + BOOST_TRY{ + ret = a.allocate(prefer_in_recvd_out_size); + } + BOOST_CATCH(...){ + if(!(command & nothrow_allocation)){ + BOOST_RETHROW + } + } + BOOST_CATCH_END + reuse = pointer(); + } + return ret; + } +}; + +} //namespace dtl { +} //namespace container { +} //namespace boost { + +#include + +#endif // ! defined(BOOST_CONTAINER_DETAIL_ALLOCATOR_VERSION_TRAITS_HPP) diff --git a/libraries/boost/include/boost/container/detail/auto_link.hpp b/libraries/boost/include/boost/container/detail/auto_link.hpp new file mode 100644 index 0000000000..264b1ba112 --- /dev/null +++ b/libraries/boost/include/boost/container/detail/auto_link.hpp @@ -0,0 +1,51 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2007-2013. 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) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// +#ifndef BOOST_CONTAINER_DETAIL_AUTO_LINK_HPP_INCLUDED +#define BOOST_CONTAINER_DETAIL_AUTO_LINK_HPP_INCLUDED + +#ifndef BOOST_CONFIG_HPP +# include +#endif + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + +//Define BOOST_CONTAINER_DYNAMIC_LINKING which is independent from BOOST_*_NO_LIB +//and is needed is some tests that need to disable some checks (like operator new replacements) +//that don't work across DLL boundaries +#if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_CONTAINER_DYN_LINK) +# define BOOST_CONTAINER_DYNAMIC_LINKING +#endif + +// +// Automatically link to the correct build variant where possible. +// +#if !defined(BOOST_ALL_NO_LIB) && !defined(BOOST_CONTAINER_NO_LIB) && !defined(BOOST_CONTAINER_SOURCE) +// +// Set the name of our library, this will get undef'ed by auto_link.hpp +// once it's done with it: +// +#define BOOST_LIB_NAME boost_container + +// +// If we're importing code from a dll, then tell auto_link.hpp about it: +// +#if defined(BOOST_CONTAINER_DYNAMIC_LINKING) +# define BOOST_DYN_LINK +#endif + +// +// And include the header that does the work: +// +#include +#endif // auto-linking disabled + +#endif //#ifndef BOOST_CONTAINER_DETAIL_AUTO_LINK_HPP_INCLUDED diff --git a/libraries/boost/include/boost/container/detail/block_list.hpp b/libraries/boost/include/boost/container/detail/block_list.hpp new file mode 100644 index 0000000000..1a6057cb4a --- /dev/null +++ b/libraries/boost/include/boost/container/detail/block_list.hpp @@ -0,0 +1,139 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2015-2015. 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) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// + +#ifndef BOOST_CONTAINER_DETAIL_BLOCK_LIST_HEADER +#define BOOST_CONTAINER_DETAIL_BLOCK_LIST_HEADER + +#ifndef BOOST_CONFIG_HPP +# include +#endif + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +namespace boost { +namespace container { +namespace pmr { + +struct list_node +{ + list_node *next; + list_node *previous; +}; + +struct list_node_traits +{ + typedef list_node node; + typedef list_node* node_ptr; + typedef const list_node* const_node_ptr; + + static node_ptr get_next(const_node_ptr n) + { return n->next; } + + static node_ptr get_previous(const_node_ptr n) + { return n->previous; } + + static void set_next(const node_ptr & n, const node_ptr & next) + { n->next = next; } + + static void set_previous(const node_ptr & n, const node_ptr & previous) + { n->previous = previous; } +}; + +struct block_list_header + : public list_node +{ + std::size_t size; +}; + +typedef bi::circular_list_algorithms list_algo; + + +template +class block_list_base +{ + list_node m_list; + + static const std::size_t MaxAlignMinus1 = memory_resource::max_align-1u; + + public: + + static const std::size_t header_size = std::size_t(sizeof(DerivedFromBlockListHeader) + MaxAlignMinus1) & std::size_t(~MaxAlignMinus1); + + explicit block_list_base() + { list_algo::init_header(&m_list); } + + #if !defined(BOOST_NO_CXX11_DELETED_FUNCTIONS) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED) + block_list_base(const block_list_base&) = delete; + block_list_base operator=(const block_list_base&) = delete; + #else + private: + block_list_base (const block_list_base&); + block_list_base operator=(const block_list_base&); + public: + #endif + + ~block_list_base() + {} + + void *allocate(std::size_t size, memory_resource &mr) + { + if((size_t(-1) - header_size) < size) + throw_bad_alloc(); + void *p = mr.allocate(size+header_size); + block_list_header &mb = *::new((void*)p) DerivedFromBlockListHeader; + mb.size = size+header_size; + list_algo::link_after(&m_list, &mb); + return (char *)p + header_size; + } + + void deallocate(void *p, memory_resource &mr) BOOST_NOEXCEPT + { + DerivedFromBlockListHeader *pheader = static_cast + (static_cast((char*)p - header_size)); + list_algo::unlink(pheader); + const std::size_t size = pheader->size; + static_cast(pheader)->~DerivedFromBlockListHeader(); + mr.deallocate(pheader, size, memory_resource::max_align); + } + + void release(memory_resource &mr) BOOST_NOEXCEPT + { + list_node *n = list_algo::node_traits::get_next(&m_list); + while(n != &m_list){ + DerivedFromBlockListHeader &d = static_cast(*n); + n = list_algo::node_traits::get_next(n); + std::size_t size = d.size; + d.~DerivedFromBlockListHeader(); + mr.deallocate(reinterpret_cast(&d), size, memory_resource::max_align); + } + list_algo::init_header(&m_list); + } +}; + +} //namespace pmr { +} //namespace container { +} //namespace boost { + +#include + +#endif //BOOST_CONTAINER_DETAIL_BLOCK_LIST_HEADER diff --git a/libraries/boost/include/boost/container/detail/block_slist.hpp b/libraries/boost/include/boost/container/detail/block_slist.hpp new file mode 100644 index 0000000000..278e6414a7 --- /dev/null +++ b/libraries/boost/include/boost/container/detail/block_slist.hpp @@ -0,0 +1,157 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2015-2015. 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) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// + +#ifndef BOOST_CONTAINER_DETAIL_BLOCK_SLIST_HEADER +#define BOOST_CONTAINER_DETAIL_BLOCK_SLIST_HEADER + +#ifndef BOOST_CONFIG_HPP +# include +#endif + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + + +#include +#include +#include +#include +#include + +#include +#include +#include + +#include + +namespace boost { +namespace container { +namespace pmr { + +struct slist_node +{ + slist_node *next; +}; + +struct slist_node_traits +{ + typedef slist_node node; + typedef slist_node* node_ptr; + typedef const slist_node* const_node_ptr; + + static node_ptr get_next(const_node_ptr n) + { return n->next; } + + static void set_next(const node_ptr & n, const node_ptr & next) + { n->next = next; } +}; + +struct block_slist_header + : public slist_node +{ + std::size_t size; +}; + +typedef bi::linear_slist_algorithms slist_algo; + +template +class block_slist_base +{ + slist_node m_slist; + + static const std::size_t MaxAlignMinus1 = memory_resource::max_align-1u; + + public: + + static const std::size_t header_size = std::size_t(sizeof(DerivedFromBlockSlistHeader) + MaxAlignMinus1) & std::size_t(~MaxAlignMinus1); + + explicit block_slist_base() + { slist_algo::init_header(&m_slist); } + + #if !defined(BOOST_NO_CXX11_DELETED_FUNCTIONS) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED) + block_slist_base(const block_slist_base&) = delete; + block_slist_base operator=(const block_slist_base&) = delete; + #else + private: + block_slist_base (const block_slist_base&); + block_slist_base operator=(const block_slist_base&); + public: + #endif + + ~block_slist_base() + {} + + void *allocate(std::size_t size, memory_resource &mr) + { + if((size_t(-1) - header_size) < size) + throw_bad_alloc(); + void *p = mr.allocate(size+header_size); + block_slist_header &mb = *::new((void*)p) DerivedFromBlockSlistHeader; + mb.size = size+header_size; + slist_algo::link_after(&m_slist, &mb); + return (char *)p + header_size; + } + + void release(memory_resource &mr) BOOST_NOEXCEPT + { + slist_node *n = slist_algo::node_traits::get_next(&m_slist); + while(n){ + DerivedFromBlockSlistHeader &d = static_cast(*n); + n = slist_algo::node_traits::get_next(n); + std::size_t size = d.block_slist_header::size; + d.~DerivedFromBlockSlistHeader(); + mr.deallocate(reinterpret_cast(&d), size, memory_resource::max_align); + } + slist_algo::init_header(&m_slist); + } +}; + +class block_slist + : public block_slist_base<> +{ + memory_resource &m_upstream_rsrc; + + public: + + explicit block_slist(memory_resource &upstream_rsrc) + : block_slist_base<>(), m_upstream_rsrc(upstream_rsrc) + {} + + #if !defined(BOOST_NO_CXX11_DELETED_FUNCTIONS) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED) + block_slist(const block_slist&) = delete; + block_slist operator=(const block_slist&) = delete; + #else + private: + block_slist (const block_slist&); + block_slist operator=(const block_slist&); + public: + #endif + + ~block_slist() + { this->release(); } + + void *allocate(std::size_t size) + { return this->block_slist_base<>::allocate(size, m_upstream_rsrc); } + + void release() BOOST_NOEXCEPT + { return this->block_slist_base<>::release(m_upstream_rsrc); } + + memory_resource& upstream_resource() const BOOST_NOEXCEPT + { return m_upstream_rsrc; } +}; + +} //namespace pmr { +} //namespace container { +} //namespace boost { + +#include + +#endif //BOOST_CONTAINER_DETAIL_BLOCK_SLIST_HEADER diff --git a/libraries/boost/include/boost/container/detail/compare_functors.hpp b/libraries/boost/include/boost/container/detail/compare_functors.hpp new file mode 100644 index 0000000000..28f9093b9a --- /dev/null +++ b/libraries/boost/include/boost/container/detail/compare_functors.hpp @@ -0,0 +1,74 @@ +/////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2014-2014. 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) +// +// See http://www.boost.org/libs/container for documentation. +// +/////////////////////////////////////////////////////////////////////////////// + +#ifndef BOOST_CONTAINER_DETAIL_COMPARE_FUNCTORS_HPP +#define BOOST_CONTAINER_DETAIL_COMPARE_FUNCTORS_HPP + +#ifndef BOOST_CONFIG_HPP +# include +#endif + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + +namespace boost { +namespace container { + +template +class equal_to_value +{ + typedef typename Allocator::value_type value_type; + const value_type &t_; + + public: + explicit equal_to_value(const value_type &t) + : t_(t) + {} + + bool operator()(const value_type &t)const + { return t_ == t; } +}; + +template +struct value_to_node_compare + : Pred +{ + typedef Pred predicate_type; + typedef Node node_type; + + value_to_node_compare() + : Pred() + {} + + explicit value_to_node_compare(Pred pred) + : Pred(pred) + {} + + bool operator()(const Node &a, const Node &b) const + { return static_cast(*this)(a.get_data(), b.get_data()); } + + bool operator()(const Node &a) const + { return static_cast(*this)(a.get_data()); } + + bool operator()(const Node &a, const Node &b) + { return static_cast(*this)(a.get_data(), b.get_data()); } + + bool operator()(const Node &a) + { return static_cast(*this)(a.get_data()); } + + predicate_type & predicate() { return static_cast(*this); } + const predicate_type & predicate() const { return static_cast(*this); } +}; + +} //namespace container { +} //namespace boost { + +#endif //BOOST_CONTAINER_DETAIL_COMPARE_FUNCTORS_HPP diff --git a/libraries/boost/include/boost/container/detail/config_begin.hpp b/libraries/boost/include/boost/container/detail/config_begin.hpp new file mode 100644 index 0000000000..4df9e35d8b --- /dev/null +++ b/libraries/boost/include/boost/container/detail/config_begin.hpp @@ -0,0 +1,53 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2005-2013. 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) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// +#ifndef BOOST_CONTAINER_CONTAINER_DETAIL_CONFIG_INCLUDED +#define BOOST_CONTAINER_CONTAINER_DETAIL_CONFIG_INCLUDED +#ifndef BOOST_CONFIG_HPP +#include +#endif + +#endif //BOOST_CONTAINER_CONTAINER_DETAIL_CONFIG_INCLUDED + +#ifdef BOOST_MSVC + #pragma warning (push) + #pragma warning (disable : 4127) // conditional expression is constant + #pragma warning (disable : 4146) // unary minus operator applied to unsigned type, result still unsigned + #pragma warning (disable : 4197) // top-level volatile in cast is ignored + #pragma warning (disable : 4244) // possible loss of data + #pragma warning (disable : 4251) // "identifier" : class "type" needs to have dll-interface to be used by clients of class "type2" + #pragma warning (disable : 4267) // conversion from "X" to "Y", possible loss of data + #pragma warning (disable : 4275) // non DLL-interface classkey "identifier" used as base for DLL-interface classkey "identifier" + #pragma warning (disable : 4284) // odd return type for operator-> + #pragma warning (disable : 4290) // C++ exception specification ignored except to indicate a function is not __declspec(nothrow) + #pragma warning (disable : 4324) // structure was padded due to __declspec(align( + #pragma warning (disable : 4345) // behavior change: an object of POD type constructed with an initializer of the form () will be default-initialized + #pragma warning (disable : 4355) // "this" : used in base member initializer list + #pragma warning (disable : 4503) // "identifier" : decorated name length exceeded, name was truncated + #pragma warning (disable : 4510) // default constructor could not be generated + #pragma warning (disable : 4511) // copy constructor could not be generated + #pragma warning (disable : 4512) // assignment operator could not be generated + #pragma warning (disable : 4514) // unreferenced inline removed + #pragma warning (disable : 4521) // Disable "multiple copy constructors specified" + #pragma warning (disable : 4522) // "class" : multiple assignment operators specified + #pragma warning (disable : 4541) // 'typeid' used on polymorphic type '' with /GR-; unpredictable behavior may result + #pragma warning (disable : 4584) // X is already a base-class of Y + #pragma warning (disable : 4610) // struct can never be instantiated - user defined constructor required + #pragma warning (disable : 4671) // the copy constructor is inaccessible + #pragma warning (disable : 4673) // throwing '' the following types will not be considered at the catch site + #pragma warning (disable : 4675) // "method" should be declared "static" and have exactly one parameter + #pragma warning (disable : 4702) // unreachable code + #pragma warning (disable : 4706) // assignment within conditional expression + #pragma warning (disable : 4710) // function not inlined + #pragma warning (disable : 4714) // "function": marked as __forceinline not inlined + #pragma warning (disable : 4711) // function selected for automatic inline expansion + #pragma warning (disable : 4786) // identifier truncated in debug info + #pragma warning (disable : 4996) // "function": was declared deprecated + +#endif //BOOST_MSVC diff --git a/libraries/boost/include/boost/container/detail/config_end.hpp b/libraries/boost/include/boost/container/detail/config_end.hpp new file mode 100644 index 0000000000..f93c8f6f79 --- /dev/null +++ b/libraries/boost/include/boost/container/detail/config_end.hpp @@ -0,0 +1,13 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2005-2013. 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) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// +#if defined BOOST_MSVC + #pragma warning (pop) +#endif + diff --git a/libraries/boost/include/boost/container/detail/construct_in_place.hpp b/libraries/boost/include/boost/container/detail/construct_in_place.hpp new file mode 100644 index 0000000000..b131f06a86 --- /dev/null +++ b/libraries/boost/include/boost/container/detail/construct_in_place.hpp @@ -0,0 +1,96 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2014-2014. +// +// 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) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// + +#ifndef BOOST_CONTAINER_DETAIL_CONSTRUCT_IN_PLACE_HPP +#define BOOST_CONTAINER_DETAIL_CONSTRUCT_IN_PLACE_HPP + +#ifndef BOOST_CONFIG_HPP +# include +#endif + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + +#include +#include +#include + +namespace boost { +namespace container { + +//In place construction + +template +BOOST_CONTAINER_FORCEINLINE void construct_in_place(Allocator &a, T* dest, InpIt source) +{ boost::container::allocator_traits::construct(a, dest, *source); } + +template +BOOST_CONTAINER_FORCEINLINE void construct_in_place(Allocator &a, T *dest, value_init_construct_iterator) +{ + boost::container::allocator_traits::construct(a, dest); +} + +template +class default_init_construct_iterator; + +template +BOOST_CONTAINER_FORCEINLINE void construct_in_place(Allocator &a, T *dest, default_init_construct_iterator) +{ + boost::container::allocator_traits::construct(a, dest, default_init); +} + +template +class emplace_iterator; + +template +BOOST_CONTAINER_FORCEINLINE void construct_in_place(Allocator &a, T *dest, emplace_iterator ei) +{ + ei.construct_in_place(a, dest); +} + +//Assignment + +template +BOOST_CONTAINER_FORCEINLINE void assign_in_place(DstIt dest, InpIt source) +{ *dest = *source; } + +template +BOOST_CONTAINER_FORCEINLINE void assign_in_place(DstIt dest, value_init_construct_iterator) +{ + dtl::value_init val; + *dest = boost::move(val.get()); +} + +template +class default_init_construct_iterator; + +template +BOOST_CONTAINER_FORCEINLINE void assign_in_place(DstIt dest, default_init_construct_iterator) +{ + U u; + *dest = boost::move(u); +} + +template +class emplace_iterator; + +template +BOOST_CONTAINER_FORCEINLINE void assign_in_place(DstIt dest, emplace_iterator ei) +{ + ei.assign_in_place(dest); +} + +} //namespace container { +} //namespace boost { + +#endif //#ifndef BOOST_CONTAINER_DETAIL_CONSTRUCT_IN_PLACE_HPP diff --git a/libraries/boost/include/boost/container/detail/container_or_allocator_rebind.hpp b/libraries/boost/include/boost/container/detail/container_or_allocator_rebind.hpp new file mode 100644 index 0000000000..d74df6c966 --- /dev/null +++ b/libraries/boost/include/boost/container/detail/container_or_allocator_rebind.hpp @@ -0,0 +1,49 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2017-2017. 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) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// +#ifndef BOOST_CONTAINER_DETAIL_CONTAINER_OR_ALLOCATOR_REBIND_HPP +#define BOOST_CONTAINER_DETAIL_CONTAINER_OR_ALLOCATOR_REBIND_HPP + +#ifndef BOOST_CONFIG_HPP +# include +#endif + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + +#include +#include +#include + +namespace boost { +namespace container { +namespace dtl { + +template::value> +struct container_or_allocator_rebind_impl + : container_rebind +{}; + +template +struct container_or_allocator_rebind_impl + : allocator_traits::template portable_rebind_alloc + +{}; + +template +struct container_or_allocator_rebind + : container_or_allocator_rebind_impl +{}; + +} //namespace dtl { +} //namespace container { +} //namespace boost { + +#endif //#ifndef BOOST_CONTAINER_DETAIL_CONTAINER_OR_ALLOCATOR_REBIND_HPP diff --git a/libraries/boost/include/boost/container/detail/container_rebind.hpp b/libraries/boost/include/boost/container/detail/container_rebind.hpp new file mode 100644 index 0000000000..0ebb4789e4 --- /dev/null +++ b/libraries/boost/include/boost/container/detail/container_rebind.hpp @@ -0,0 +1,258 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2017-2017. 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) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// +#ifndef BOOST_CONTAINER_DETAIL_CONTAINER_REBIND_HPP +#define BOOST_CONTAINER_DETAIL_CONTAINER_REBIND_HPP + +#ifndef BOOST_CONFIG_HPP +# include +#endif + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + +#include + + +namespace boost { +namespace container { +namespace dtl { + + template + struct container_rebind; + +#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) + + template